All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.recurly.v3.resources.LineItem Maven / Gradle / Ivy

There is a newer version: 4.59.1
Show newest version
/**
 * This file is automatically created by Recurly's OpenAPI generation process and thus any edits you
 * make by hand will be lost. If you wish to make a change to this file, please create a Github
 * issue explaining the changes you need and we will usher them to the appropriate places.
 */
package com.recurly.v3.resources;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import com.recurly.v3.Constants;
import com.recurly.v3.Resource;
import java.math.BigDecimal;
import java.util.List;
import org.joda.time.DateTime;

public class LineItem extends Resource {

  /** Account mini details */
  @SerializedName("account")
  @Expose
  private AccountMini account;

  /**
   * Internal accounting code to help you reconcile your revenue to the correct ledger. Line items
   * created as part of a subscription invoice will use the plan or add-on's accounting code,
   * otherwise the value will only be present if you define an accounting code when creating the
   * line item.
   */
  @SerializedName("accounting_code")
  @Expose
  private String accountingCode;

  /** If the line item is a charge or credit for an add-on, this is its code. */
  @SerializedName("add_on_code")
  @Expose
  private String addOnCode;

  /** If the line item is a charge or credit for an add-on this is its ID. */
  @SerializedName("add_on_id")
  @Expose
  private String addOnId;

  /** `(quantity * unit_amount) - (discount + tax)` */
  @SerializedName("amount")
  @Expose
  private BigDecimal amount;

  /**
   * Used by Avalara for Communications taxes. The transaction type in combination with the service
   * type describe how the line item is taxed. Refer to [the
   * documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
   * for more available t/s types.
   */
  @SerializedName("avalara_service_type")
  @Expose
  private Integer avalaraServiceType;

  /**
   * Used by Avalara for Communications taxes. The transaction type in combination with the service
   * type describe how the line item is taxed. Refer to [the
   * documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
   * for more available t/s types.
   */
  @SerializedName("avalara_transaction_type")
  @Expose
  private Integer avalaraTransactionType;

  /** The UUID of the account responsible for originating the line item. */
  @SerializedName("bill_for_account_id")
  @Expose
  private String billForAccountId;

  /** When the line item was created. */
  @SerializedName("created_at")
  @Expose
  private DateTime createdAt;

  /** The amount of credit from this line item that was applied to the invoice. */
  @SerializedName("credit_applied")
  @Expose
  private BigDecimal creditApplied;

  /** The reason the credit was given when line item is `type=credit`. */
  @SerializedName("credit_reason_code")
  @Expose
  private Constants.FullCreditReasonCode creditReasonCode;

  /** 3-letter ISO 4217 currency code. */
  @SerializedName("currency")
  @Expose
  private String currency;

  /**
   * The custom fields will only be altered when they are included in a request. Sending an empty
   * array will not remove any existing values. To remove a field send the name with a null or empty
   * value.
   */
  @SerializedName("custom_fields")
  @Expose
  private List customFields;

  /**
   * Description that appears on the invoice. For subscription related items this will be filled in
   * automatically.
   */
  @SerializedName("description")
  @Expose
  private String description;

  /**
   * The source of the address that will be used as the destinaion in determining taxes. Available
   * only when the site is on an Elite plan. A value of "destination" refers to the "Customer tax
   * address". A value of "origin" refers to the "Business entity tax address".
   */
  @SerializedName("destination_tax_address_source")
  @Expose
  private Constants.DestinationTaxAddressSource destinationTaxAddressSource;

  /** The discount applied to the line item. */
  @SerializedName("discount")
  @Expose
  private BigDecimal discount;

  /** If this date is provided, it indicates the end of a time range. */
  @SerializedName("end_date")
  @Expose
  private DateTime endDate;

  /**
   * Optional Stock Keeping Unit assigned to an item. Available when the Credit Invoices feature is
   * enabled.
   */
  @SerializedName("external_sku")
  @Expose
  private String externalSku;

  /** Line item ID */
  @SerializedName("id")
  @Expose
  private String id;

  /** Once the line item has been invoiced this will be the invoice's ID. */
  @SerializedName("invoice_id")
  @Expose
  private String invoiceId;

  /**
   * Once the line item has been invoiced this will be the invoice's number. If VAT taxation and the
   * Country Invoice Sequencing feature are enabled, invoices will have country-specific invoice
   * numbers for invoices billed to EU countries (ex: FR1001). Non-EU invoices will continue to use
   * the site-level invoice number sequence.
   */
  @SerializedName("invoice_number")
  @Expose
  private String invoiceNumber;

  /** Unique code to identify an item. Available when the Credit Invoices feature is enabled. */
  @SerializedName("item_code")
  @Expose
  private String itemCode;

  /**
   * System-generated unique identifier for an item. Available when the Credit Invoices feature is
   * enabled.
   */
  @SerializedName("item_id")
  @Expose
  private String itemId;

  /**
   * Category to describe the role of a line item on a legacy invoice: - "charges" refers to charges
   * being billed for on this invoice. - "credits" refers to refund or proration credits. This
   * portion of the invoice can be considered a credit memo. - "applied_credits" refers to previous
   * credits applied to this invoice. See their original_line_item_id to determine where the credit
   * first originated. - "carryforwards" can be ignored. They exist to consume any remaining credit
   * balance. A new credit with the same amount will be created and placed back on the account.
   */
  @SerializedName("legacy_category")
  @Expose
  private Constants.LegacyCategory legacyCategory;

  /**
   * Unique code to identify the ledger account. Each code must start with a letter or number. The
   * following special characters are allowed: `-_.,:`
   */
  @SerializedName("liability_gl_account_code")
  @Expose
  private String liabilityGlAccountCode;

  /** Object type */
  @SerializedName("object")
  @Expose
  private String object;

  /** A credit created from an original charge will have the value of the charge's origin. */
  @SerializedName("origin")
  @Expose
  private Constants.LineItemOrigin origin;

  /**
   * The source of the address that will be used as the origin in determining taxes. Available only
   * when the site is on an Elite plan. A value of "origin" refers to the "Business entity tax
   * address". A value of "destination" refers to the "Customer tax address".
   */
  @SerializedName("origin_tax_address_source")
  @Expose
  private Constants.OriginTaxAddressSource originTaxAddressSource;

  /**
   * The invoice where the credit originated. Will only have a value if the line item is a credit
   * created from a previous credit, or if the credit was created from a charge refund.
   */
  @SerializedName("original_line_item_invoice_id")
  @Expose
  private String originalLineItemInvoiceId;

  /**
   * The ID of a performance obligation. Performance obligations are only accessible as a part of
   * the Recurly RevRec Standard and Recurly RevRec Advanced features.
   */
  @SerializedName("performance_obligation_id")
  @Expose
  private String performanceObligationId;

  /** If the line item is a charge or credit for a plan or add-on, this is the plan's code. */
  @SerializedName("plan_code")
  @Expose
  private String planCode;

  /** If the line item is a charge or credit for a plan or add-on, this is the plan's ID. */
  @SerializedName("plan_id")
  @Expose
  private String planId;

  /**
   * Will only have a value if the line item is a credit created from a previous credit, or if the
   * credit was created from a charge refund.
   */
  @SerializedName("previous_line_item_id")
  @Expose
  private String previousLineItemId;

  /**
   * For plan-related line items this will be the plan's code, for add-on related line items it will
   * be the add-on's code. For item-related line items it will be the item's `external_sku`.
   */
  @SerializedName("product_code")
  @Expose
  private String productCode;

  /**
   * When a line item has been prorated, this is the rate of the proration. Proration rates were
   * made available for line items created after March 30, 2017. For line items created prior to
   * that date, the proration rate will be `null`, even if the line item was prorated.
   */
  @SerializedName("proration_rate")
  @Expose
  private BigDecimal prorationRate;

  /**
   * This number will be multiplied by the unit amount to compute the subtotal before any discounts
   * or taxes.
   */
  @SerializedName("quantity")
  @Expose
  private Integer quantity;

  /**
   * A floating-point alternative to Quantity. If this value is present, it will be used in place of
   * Quantity for calculations, and Quantity will be the rounded integer value of this number. This
   * field supports up to 9 decimal places. The Decimal Quantity feature must be enabled to utilize
   * this field.
   */
  @SerializedName("quantity_decimal")
  @Expose
  private String quantityDecimal;

  /** Refund? */
  @SerializedName("refund")
  @Expose
  private Boolean refund;

  /**
   * For refund charges, the quantity being refunded. For non-refund charges, the total quantity
   * refunded (possibly over multiple refunds).
   */
  @SerializedName("refunded_quantity")
  @Expose
  private Integer refundedQuantity;

  /**
   * A floating-point alternative to Refunded Quantity. For refund charges, the quantity being
   * refunded. For non-refund charges, the total quantity refunded (possibly over multiple refunds).
   * The Decimal Quantity feature must be enabled to utilize this field.
   */
  @SerializedName("refunded_quantity_decimal")
  @Expose
  private String refundedQuantityDecimal;

  /**
   * Unique code to identify the ledger account. Each code must start with a letter or number. The
   * following special characters are allowed: `-_.,:`
   */
  @SerializedName("revenue_gl_account_code")
  @Expose
  private String revenueGlAccountCode;

  /** Revenue schedule type */
  @SerializedName("revenue_schedule_type")
  @Expose
  private Constants.LineItemRevenueScheduleType revenueScheduleType;

  @SerializedName("shipping_address")
  @Expose
  private ShippingAddress shippingAddress;

  /**
   * If an end date is present, this is value indicates the beginning of a billing time range. If no
   * end date is present it indicates billing for a specific date.
   */
  @SerializedName("start_date")
  @Expose
  private DateTime startDate;

  /**
   * Pending line items are charges or credits on an account that have not been applied to an
   * invoice yet. Invoiced line items will always have an `invoice_id` value.
   */
  @SerializedName("state")
  @Expose
  private Constants.LineItemState state;

  /** If the line item is a charge or credit for a subscription, this is its ID. */
  @SerializedName("subscription_id")
  @Expose
  private String subscriptionId;

  /** `quantity * unit_amount` */
  @SerializedName("subtotal")
  @Expose
  private BigDecimal subtotal;

  /** The tax amount for the line item. */
  @SerializedName("tax")
  @Expose
  private BigDecimal tax;

  /**
   * Optional field used by Avalara, Vertex, and Recurly's In-the-Box tax solution to determine
   * taxation rules. You can pass in specific tax codes using any of these tax integrations. For
   * Recurly's In-the-Box tax offering you can also choose to instead use simple values of
   * `unknown`, `physical`, or `digital` tax codes.
   */
  @SerializedName("tax_code")
  @Expose
  private String taxCode;

  /**
   * `true` exempts tax on charges, `false` applies tax on charges. If not defined, then defaults to
   * the Plan and Site settings. This attribute does not work for credits (negative line items).
   * Credits are always applied post-tax. Pre-tax discounts should use the Coupons feature.
   */
  @SerializedName("tax_exempt")
  @Expose
  private Boolean taxExempt;

  /**
   * Determines whether or not tax is included in the unit amount. The Tax Inclusive Pricing feature
   * (separate from the Mixed Tax Pricing feature) must be enabled to utilize this flag.
   */
  @SerializedName("tax_inclusive")
  @Expose
  private Boolean taxInclusive;

  /** Only for merchants using Recurly's In-The-Box taxes. */
  @SerializedName("tax_info")
  @Expose
  private TaxInfo taxInfo;

  /** `true` if the line item is taxable, `false` if it is not. */
  @SerializedName("taxable")
  @Expose
  private Boolean taxable;

  /**
   * Charges are positive line items that debit the account. Credits are negative line items that
   * credit the account.
   */
  @SerializedName("type")
  @Expose
  private Constants.LineItemType type;

  /** Positive amount for a charge, negative amount for a credit. */
  @SerializedName("unit_amount")
  @Expose
  private BigDecimal unitAmount;

  /** Positive amount for a charge, negative amount for a credit. */
  @SerializedName("unit_amount_decimal")
  @Expose
  private String unitAmountDecimal;

  /** When the line item was last changed. */
  @SerializedName("updated_at")
  @Expose
  private DateTime updatedAt;

  /**
   * The UUID is useful for matching data with the CSV exports and building URLs into Recurly's UI.
   */
  @SerializedName("uuid")
  @Expose
  private String uuid;

  /** Account mini details */
  public AccountMini getAccount() {
    return this.account;
  }

  /** @param account Account mini details */
  public void setAccount(final AccountMini account) {
    this.account = account;
  }

  /**
   * Internal accounting code to help you reconcile your revenue to the correct ledger. Line items
   * created as part of a subscription invoice will use the plan or add-on's accounting code,
   * otherwise the value will only be present if you define an accounting code when creating the
   * line item.
   */
  public String getAccountingCode() {
    return this.accountingCode;
  }

  /**
   * @param accountingCode Internal accounting code to help you reconcile your revenue to the
   *     correct ledger. Line items created as part of a subscription invoice will use the plan or
   *     add-on's accounting code, otherwise the value will only be present if you define an
   *     accounting code when creating the line item.
   */
  public void setAccountingCode(final String accountingCode) {
    this.accountingCode = accountingCode;
  }

  /** If the line item is a charge or credit for an add-on, this is its code. */
  public String getAddOnCode() {
    return this.addOnCode;
  }

  /** @param addOnCode If the line item is a charge or credit for an add-on, this is its code. */
  public void setAddOnCode(final String addOnCode) {
    this.addOnCode = addOnCode;
  }

  /** If the line item is a charge or credit for an add-on this is its ID. */
  public String getAddOnId() {
    return this.addOnId;
  }

  /** @param addOnId If the line item is a charge or credit for an add-on this is its ID. */
  public void setAddOnId(final String addOnId) {
    this.addOnId = addOnId;
  }

  /** `(quantity * unit_amount) - (discount + tax)` */
  public BigDecimal getAmount() {
    return this.amount;
  }

  /** @param amount `(quantity * unit_amount) - (discount + tax)` */
  public void setAmount(final BigDecimal amount) {
    this.amount = amount;
  }

  /**
   * Used by Avalara for Communications taxes. The transaction type in combination with the service
   * type describe how the line item is taxed. Refer to [the
   * documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
   * for more available t/s types.
   */
  public Integer getAvalaraServiceType() {
    return this.avalaraServiceType;
  }

  /**
   * @param avalaraServiceType Used by Avalara for Communications taxes. The transaction type in
   *     combination with the service type describe how the line item is taxed. Refer to [the
   *     documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
   *     for more available t/s types.
   */
  public void setAvalaraServiceType(final Integer avalaraServiceType) {
    this.avalaraServiceType = avalaraServiceType;
  }

  /**
   * Used by Avalara for Communications taxes. The transaction type in combination with the service
   * type describe how the line item is taxed. Refer to [the
   * documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
   * for more available t/s types.
   */
  public Integer getAvalaraTransactionType() {
    return this.avalaraTransactionType;
  }

  /**
   * @param avalaraTransactionType Used by Avalara for Communications taxes. The transaction type in
   *     combination with the service type describe how the line item is taxed. Refer to [the
   *     documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
   *     for more available t/s types.
   */
  public void setAvalaraTransactionType(final Integer avalaraTransactionType) {
    this.avalaraTransactionType = avalaraTransactionType;
  }

  /** The UUID of the account responsible for originating the line item. */
  public String getBillForAccountId() {
    return this.billForAccountId;
  }

  /** @param billForAccountId The UUID of the account responsible for originating the line item. */
  public void setBillForAccountId(final String billForAccountId) {
    this.billForAccountId = billForAccountId;
  }

  /** When the line item was created. */
  public DateTime getCreatedAt() {
    return this.createdAt;
  }

  /** @param createdAt When the line item was created. */
  public void setCreatedAt(final DateTime createdAt) {
    this.createdAt = createdAt;
  }

  /** The amount of credit from this line item that was applied to the invoice. */
  public BigDecimal getCreditApplied() {
    return this.creditApplied;
  }

  /**
   * @param creditApplied The amount of credit from this line item that was applied to the invoice.
   */
  public void setCreditApplied(final BigDecimal creditApplied) {
    this.creditApplied = creditApplied;
  }

  /** The reason the credit was given when line item is `type=credit`. */
  public Constants.FullCreditReasonCode getCreditReasonCode() {
    return this.creditReasonCode;
  }

  /** @param creditReasonCode The reason the credit was given when line item is `type=credit`. */
  public void setCreditReasonCode(final Constants.FullCreditReasonCode creditReasonCode) {
    this.creditReasonCode = creditReasonCode;
  }

  /** 3-letter ISO 4217 currency code. */
  public String getCurrency() {
    return this.currency;
  }

  /** @param currency 3-letter ISO 4217 currency code. */
  public void setCurrency(final String currency) {
    this.currency = currency;
  }

  /**
   * The custom fields will only be altered when they are included in a request. Sending an empty
   * array will not remove any existing values. To remove a field send the name with a null or empty
   * value.
   */
  public List getCustomFields() {
    return this.customFields;
  }

  /**
   * @param customFields The custom fields will only be altered when they are included in a request.
   *     Sending an empty array will not remove any existing values. To remove a field send the name
   *     with a null or empty value.
   */
  public void setCustomFields(final List customFields) {
    this.customFields = customFields;
  }

  /**
   * Description that appears on the invoice. For subscription related items this will be filled in
   * automatically.
   */
  public String getDescription() {
    return this.description;
  }

  /**
   * @param description Description that appears on the invoice. For subscription related items this
   *     will be filled in automatically.
   */
  public void setDescription(final String description) {
    this.description = description;
  }

  /**
   * The source of the address that will be used as the destinaion in determining taxes. Available
   * only when the site is on an Elite plan. A value of "destination" refers to the "Customer tax
   * address". A value of "origin" refers to the "Business entity tax address".
   */
  public Constants.DestinationTaxAddressSource getDestinationTaxAddressSource() {
    return this.destinationTaxAddressSource;
  }

  /**
   * @param destinationTaxAddressSource The source of the address that will be used as the
   *     destinaion in determining taxes. Available only when the site is on an Elite plan. A value
   *     of "destination" refers to the "Customer tax address". A value of "origin" refers to the
   *     "Business entity tax address".
   */
  public void setDestinationTaxAddressSource(
      final Constants.DestinationTaxAddressSource destinationTaxAddressSource) {
    this.destinationTaxAddressSource = destinationTaxAddressSource;
  }

  /** The discount applied to the line item. */
  public BigDecimal getDiscount() {
    return this.discount;
  }

  /** @param discount The discount applied to the line item. */
  public void setDiscount(final BigDecimal discount) {
    this.discount = discount;
  }

  /** If this date is provided, it indicates the end of a time range. */
  public DateTime getEndDate() {
    return this.endDate;
  }

  /** @param endDate If this date is provided, it indicates the end of a time range. */
  public void setEndDate(final DateTime endDate) {
    this.endDate = endDate;
  }

  /**
   * Optional Stock Keeping Unit assigned to an item. Available when the Credit Invoices feature is
   * enabled.
   */
  public String getExternalSku() {
    return this.externalSku;
  }

  /**
   * @param externalSku Optional Stock Keeping Unit assigned to an item. Available when the Credit
   *     Invoices feature is enabled.
   */
  public void setExternalSku(final String externalSku) {
    this.externalSku = externalSku;
  }

  /** Line item ID */
  public String getId() {
    return this.id;
  }

  /** @param id Line item ID */
  public void setId(final String id) {
    this.id = id;
  }

  /** Once the line item has been invoiced this will be the invoice's ID. */
  public String getInvoiceId() {
    return this.invoiceId;
  }

  /** @param invoiceId Once the line item has been invoiced this will be the invoice's ID. */
  public void setInvoiceId(final String invoiceId) {
    this.invoiceId = invoiceId;
  }

  /**
   * Once the line item has been invoiced this will be the invoice's number. If VAT taxation and the
   * Country Invoice Sequencing feature are enabled, invoices will have country-specific invoice
   * numbers for invoices billed to EU countries (ex: FR1001). Non-EU invoices will continue to use
   * the site-level invoice number sequence.
   */
  public String getInvoiceNumber() {
    return this.invoiceNumber;
  }

  /**
   * @param invoiceNumber Once the line item has been invoiced this will be the invoice's number. If
   *     VAT taxation and the Country Invoice Sequencing feature are enabled, invoices will have
   *     country-specific invoice numbers for invoices billed to EU countries (ex: FR1001). Non-EU
   *     invoices will continue to use the site-level invoice number sequence.
   */
  public void setInvoiceNumber(final String invoiceNumber) {
    this.invoiceNumber = invoiceNumber;
  }

  /** Unique code to identify an item. Available when the Credit Invoices feature is enabled. */
  public String getItemCode() {
    return this.itemCode;
  }

  /**
   * @param itemCode Unique code to identify an item. Available when the Credit Invoices feature is
   *     enabled.
   */
  public void setItemCode(final String itemCode) {
    this.itemCode = itemCode;
  }

  /**
   * System-generated unique identifier for an item. Available when the Credit Invoices feature is
   * enabled.
   */
  public String getItemId() {
    return this.itemId;
  }

  /**
   * @param itemId System-generated unique identifier for an item. Available when the Credit
   *     Invoices feature is enabled.
   */
  public void setItemId(final String itemId) {
    this.itemId = itemId;
  }

  /**
   * Category to describe the role of a line item on a legacy invoice: - "charges" refers to charges
   * being billed for on this invoice. - "credits" refers to refund or proration credits. This
   * portion of the invoice can be considered a credit memo. - "applied_credits" refers to previous
   * credits applied to this invoice. See their original_line_item_id to determine where the credit
   * first originated. - "carryforwards" can be ignored. They exist to consume any remaining credit
   * balance. A new credit with the same amount will be created and placed back on the account.
   */
  public Constants.LegacyCategory getLegacyCategory() {
    return this.legacyCategory;
  }

  /**
   * @param legacyCategory Category to describe the role of a line item on a legacy invoice: -
   *     "charges" refers to charges being billed for on this invoice. - "credits" refers to refund
   *     or proration credits. This portion of the invoice can be considered a credit memo. -
   *     "applied_credits" refers to previous credits applied to this invoice. See their
   *     original_line_item_id to determine where the credit first originated. - "carryforwards" can
   *     be ignored. They exist to consume any remaining credit balance. A new credit with the same
   *     amount will be created and placed back on the account.
   */
  public void setLegacyCategory(final Constants.LegacyCategory legacyCategory) {
    this.legacyCategory = legacyCategory;
  }

  /**
   * Unique code to identify the ledger account. Each code must start with a letter or number. The
   * following special characters are allowed: `-_.,:`
   */
  public String getLiabilityGlAccountCode() {
    return this.liabilityGlAccountCode;
  }

  /**
   * @param liabilityGlAccountCode Unique code to identify the ledger account. Each code must start
   *     with a letter or number. The following special characters are allowed: `-_.,:`
   */
  public void setLiabilityGlAccountCode(final String liabilityGlAccountCode) {
    this.liabilityGlAccountCode = liabilityGlAccountCode;
  }

  /** Object type */
  public String getObject() {
    return this.object;
  }

  /** @param object Object type */
  public void setObject(final String object) {
    this.object = object;
  }

  /** A credit created from an original charge will have the value of the charge's origin. */
  public Constants.LineItemOrigin getOrigin() {
    return this.origin;
  }

  /**
   * @param origin A credit created from an original charge will have the value of the charge's
   *     origin.
   */
  public void setOrigin(final Constants.LineItemOrigin origin) {
    this.origin = origin;
  }

  /**
   * The source of the address that will be used as the origin in determining taxes. Available only
   * when the site is on an Elite plan. A value of "origin" refers to the "Business entity tax
   * address". A value of "destination" refers to the "Customer tax address".
   */
  public Constants.OriginTaxAddressSource getOriginTaxAddressSource() {
    return this.originTaxAddressSource;
  }

  /**
   * @param originTaxAddressSource The source of the address that will be used as the origin in
   *     determining taxes. Available only when the site is on an Elite plan. A value of "origin"
   *     refers to the "Business entity tax address". A value of "destination" refers to the
   *     "Customer tax address".
   */
  public void setOriginTaxAddressSource(
      final Constants.OriginTaxAddressSource originTaxAddressSource) {
    this.originTaxAddressSource = originTaxAddressSource;
  }

  /**
   * The invoice where the credit originated. Will only have a value if the line item is a credit
   * created from a previous credit, or if the credit was created from a charge refund.
   */
  public String getOriginalLineItemInvoiceId() {
    return this.originalLineItemInvoiceId;
  }

  /**
   * @param originalLineItemInvoiceId The invoice where the credit originated. Will only have a
   *     value if the line item is a credit created from a previous credit, or if the credit was
   *     created from a charge refund.
   */
  public void setOriginalLineItemInvoiceId(final String originalLineItemInvoiceId) {
    this.originalLineItemInvoiceId = originalLineItemInvoiceId;
  }

  /**
   * The ID of a performance obligation. Performance obligations are only accessible as a part of
   * the Recurly RevRec Standard and Recurly RevRec Advanced features.
   */
  public String getPerformanceObligationId() {
    return this.performanceObligationId;
  }

  /**
   * @param performanceObligationId The ID of a performance obligation. Performance obligations are
   *     only accessible as a part of the Recurly RevRec Standard and Recurly RevRec Advanced
   *     features.
   */
  public void setPerformanceObligationId(final String performanceObligationId) {
    this.performanceObligationId = performanceObligationId;
  }

  /** If the line item is a charge or credit for a plan or add-on, this is the plan's code. */
  public String getPlanCode() {
    return this.planCode;
  }

  /**
   * @param planCode If the line item is a charge or credit for a plan or add-on, this is the plan's
   *     code.
   */
  public void setPlanCode(final String planCode) {
    this.planCode = planCode;
  }

  /** If the line item is a charge or credit for a plan or add-on, this is the plan's ID. */
  public String getPlanId() {
    return this.planId;
  }

  /**
   * @param planId If the line item is a charge or credit for a plan or add-on, this is the plan's
   *     ID.
   */
  public void setPlanId(final String planId) {
    this.planId = planId;
  }

  /**
   * Will only have a value if the line item is a credit created from a previous credit, or if the
   * credit was created from a charge refund.
   */
  public String getPreviousLineItemId() {
    return this.previousLineItemId;
  }

  /**
   * @param previousLineItemId Will only have a value if the line item is a credit created from a
   *     previous credit, or if the credit was created from a charge refund.
   */
  public void setPreviousLineItemId(final String previousLineItemId) {
    this.previousLineItemId = previousLineItemId;
  }

  /**
   * For plan-related line items this will be the plan's code, for add-on related line items it will
   * be the add-on's code. For item-related line items it will be the item's `external_sku`.
   */
  public String getProductCode() {
    return this.productCode;
  }

  /**
   * @param productCode For plan-related line items this will be the plan's code, for add-on related
   *     line items it will be the add-on's code. For item-related line items it will be the item's
   *     `external_sku`.
   */
  public void setProductCode(final String productCode) {
    this.productCode = productCode;
  }

  /**
   * When a line item has been prorated, this is the rate of the proration. Proration rates were
   * made available for line items created after March 30, 2017. For line items created prior to
   * that date, the proration rate will be `null`, even if the line item was prorated.
   */
  public BigDecimal getProrationRate() {
    return this.prorationRate;
  }

  /**
   * @param prorationRate When a line item has been prorated, this is the rate of the proration.
   *     Proration rates were made available for line items created after March 30, 2017. For line
   *     items created prior to that date, the proration rate will be `null`, even if the line item
   *     was prorated.
   */
  public void setProrationRate(final BigDecimal prorationRate) {
    this.prorationRate = prorationRate;
  }

  /**
   * This number will be multiplied by the unit amount to compute the subtotal before any discounts
   * or taxes.
   */
  public Integer getQuantity() {
    return this.quantity;
  }

  /**
   * @param quantity This number will be multiplied by the unit amount to compute the subtotal
   *     before any discounts or taxes.
   */
  public void setQuantity(final Integer quantity) {
    this.quantity = quantity;
  }

  /**
   * A floating-point alternative to Quantity. If this value is present, it will be used in place of
   * Quantity for calculations, and Quantity will be the rounded integer value of this number. This
   * field supports up to 9 decimal places. The Decimal Quantity feature must be enabled to utilize
   * this field.
   */
  public String getQuantityDecimal() {
    return this.quantityDecimal;
  }

  /**
   * @param quantityDecimal A floating-point alternative to Quantity. If this value is present, it
   *     will be used in place of Quantity for calculations, and Quantity will be the rounded
   *     integer value of this number. This field supports up to 9 decimal places. The Decimal
   *     Quantity feature must be enabled to utilize this field.
   */
  public void setQuantityDecimal(final String quantityDecimal) {
    this.quantityDecimal = quantityDecimal;
  }

  /** Refund? */
  public Boolean getRefund() {
    return this.refund;
  }

  /** @param refund Refund? */
  public void setRefund(final Boolean refund) {
    this.refund = refund;
  }

  /**
   * For refund charges, the quantity being refunded. For non-refund charges, the total quantity
   * refunded (possibly over multiple refunds).
   */
  public Integer getRefundedQuantity() {
    return this.refundedQuantity;
  }

  /**
   * @param refundedQuantity For refund charges, the quantity being refunded. For non-refund
   *     charges, the total quantity refunded (possibly over multiple refunds).
   */
  public void setRefundedQuantity(final Integer refundedQuantity) {
    this.refundedQuantity = refundedQuantity;
  }

  /**
   * A floating-point alternative to Refunded Quantity. For refund charges, the quantity being
   * refunded. For non-refund charges, the total quantity refunded (possibly over multiple refunds).
   * The Decimal Quantity feature must be enabled to utilize this field.
   */
  public String getRefundedQuantityDecimal() {
    return this.refundedQuantityDecimal;
  }

  /**
   * @param refundedQuantityDecimal A floating-point alternative to Refunded Quantity. For refund
   *     charges, the quantity being refunded. For non-refund charges, the total quantity refunded
   *     (possibly over multiple refunds). The Decimal Quantity feature must be enabled to utilize
   *     this field.
   */
  public void setRefundedQuantityDecimal(final String refundedQuantityDecimal) {
    this.refundedQuantityDecimal = refundedQuantityDecimal;
  }

  /**
   * Unique code to identify the ledger account. Each code must start with a letter or number. The
   * following special characters are allowed: `-_.,:`
   */
  public String getRevenueGlAccountCode() {
    return this.revenueGlAccountCode;
  }

  /**
   * @param revenueGlAccountCode Unique code to identify the ledger account. Each code must start
   *     with a letter or number. The following special characters are allowed: `-_.,:`
   */
  public void setRevenueGlAccountCode(final String revenueGlAccountCode) {
    this.revenueGlAccountCode = revenueGlAccountCode;
  }

  /** Revenue schedule type */
  public Constants.LineItemRevenueScheduleType getRevenueScheduleType() {
    return this.revenueScheduleType;
  }

  /** @param revenueScheduleType Revenue schedule type */
  public void setRevenueScheduleType(
      final Constants.LineItemRevenueScheduleType revenueScheduleType) {
    this.revenueScheduleType = revenueScheduleType;
  }

  public ShippingAddress getShippingAddress() {
    return this.shippingAddress;
  }

  /** @param shippingAddress */
  public void setShippingAddress(final ShippingAddress shippingAddress) {
    this.shippingAddress = shippingAddress;
  }

  /**
   * If an end date is present, this is value indicates the beginning of a billing time range. If no
   * end date is present it indicates billing for a specific date.
   */
  public DateTime getStartDate() {
    return this.startDate;
  }

  /**
   * @param startDate If an end date is present, this is value indicates the beginning of a billing
   *     time range. If no end date is present it indicates billing for a specific date.
   */
  public void setStartDate(final DateTime startDate) {
    this.startDate = startDate;
  }

  /**
   * Pending line items are charges or credits on an account that have not been applied to an
   * invoice yet. Invoiced line items will always have an `invoice_id` value.
   */
  public Constants.LineItemState getState() {
    return this.state;
  }

  /**
   * @param state Pending line items are charges or credits on an account that have not been applied
   *     to an invoice yet. Invoiced line items will always have an `invoice_id` value.
   */
  public void setState(final Constants.LineItemState state) {
    this.state = state;
  }

  /** If the line item is a charge or credit for a subscription, this is its ID. */
  public String getSubscriptionId() {
    return this.subscriptionId;
  }

  /**
   * @param subscriptionId If the line item is a charge or credit for a subscription, this is its
   *     ID.
   */
  public void setSubscriptionId(final String subscriptionId) {
    this.subscriptionId = subscriptionId;
  }

  /** `quantity * unit_amount` */
  public BigDecimal getSubtotal() {
    return this.subtotal;
  }

  /** @param subtotal `quantity * unit_amount` */
  public void setSubtotal(final BigDecimal subtotal) {
    this.subtotal = subtotal;
  }

  /** The tax amount for the line item. */
  public BigDecimal getTax() {
    return this.tax;
  }

  /** @param tax The tax amount for the line item. */
  public void setTax(final BigDecimal tax) {
    this.tax = tax;
  }

  /**
   * Optional field used by Avalara, Vertex, and Recurly's In-the-Box tax solution to determine
   * taxation rules. You can pass in specific tax codes using any of these tax integrations. For
   * Recurly's In-the-Box tax offering you can also choose to instead use simple values of
   * `unknown`, `physical`, or `digital` tax codes.
   */
  public String getTaxCode() {
    return this.taxCode;
  }

  /**
   * @param taxCode Optional field used by Avalara, Vertex, and Recurly's In-the-Box tax solution to
   *     determine taxation rules. You can pass in specific tax codes using any of these tax
   *     integrations. For Recurly's In-the-Box tax offering you can also choose to instead use
   *     simple values of `unknown`, `physical`, or `digital` tax codes.
   */
  public void setTaxCode(final String taxCode) {
    this.taxCode = taxCode;
  }

  /**
   * `true` exempts tax on charges, `false` applies tax on charges. If not defined, then defaults to
   * the Plan and Site settings. This attribute does not work for credits (negative line items).
   * Credits are always applied post-tax. Pre-tax discounts should use the Coupons feature.
   */
  public Boolean getTaxExempt() {
    return this.taxExempt;
  }

  /**
   * @param taxExempt `true` exempts tax on charges, `false` applies tax on charges. If not defined,
   *     then defaults to the Plan and Site settings. This attribute does not work for credits
   *     (negative line items). Credits are always applied post-tax. Pre-tax discounts should use
   *     the Coupons feature.
   */
  public void setTaxExempt(final Boolean taxExempt) {
    this.taxExempt = taxExempt;
  }

  /**
   * Determines whether or not tax is included in the unit amount. The Tax Inclusive Pricing feature
   * (separate from the Mixed Tax Pricing feature) must be enabled to utilize this flag.
   */
  public Boolean getTaxInclusive() {
    return this.taxInclusive;
  }

  /**
   * @param taxInclusive Determines whether or not tax is included in the unit amount. The Tax
   *     Inclusive Pricing feature (separate from the Mixed Tax Pricing feature) must be enabled to
   *     utilize this flag.
   */
  public void setTaxInclusive(final Boolean taxInclusive) {
    this.taxInclusive = taxInclusive;
  }

  /** Only for merchants using Recurly's In-The-Box taxes. */
  public TaxInfo getTaxInfo() {
    return this.taxInfo;
  }

  /** @param taxInfo Only for merchants using Recurly's In-The-Box taxes. */
  public void setTaxInfo(final TaxInfo taxInfo) {
    this.taxInfo = taxInfo;
  }

  /** `true` if the line item is taxable, `false` if it is not. */
  public Boolean getTaxable() {
    return this.taxable;
  }

  /** @param taxable `true` if the line item is taxable, `false` if it is not. */
  public void setTaxable(final Boolean taxable) {
    this.taxable = taxable;
  }

  /**
   * Charges are positive line items that debit the account. Credits are negative line items that
   * credit the account.
   */
  public Constants.LineItemType getType() {
    return this.type;
  }

  /**
   * @param type Charges are positive line items that debit the account. Credits are negative line
   *     items that credit the account.
   */
  public void setType(final Constants.LineItemType type) {
    this.type = type;
  }

  /** Positive amount for a charge, negative amount for a credit. */
  public BigDecimal getUnitAmount() {
    return this.unitAmount;
  }

  /** @param unitAmount Positive amount for a charge, negative amount for a credit. */
  public void setUnitAmount(final BigDecimal unitAmount) {
    this.unitAmount = unitAmount;
  }

  /** Positive amount for a charge, negative amount for a credit. */
  public String getUnitAmountDecimal() {
    return this.unitAmountDecimal;
  }

  /** @param unitAmountDecimal Positive amount for a charge, negative amount for a credit. */
  public void setUnitAmountDecimal(final String unitAmountDecimal) {
    this.unitAmountDecimal = unitAmountDecimal;
  }

  /** When the line item was last changed. */
  public DateTime getUpdatedAt() {
    return this.updatedAt;
  }

  /** @param updatedAt When the line item was last changed. */
  public void setUpdatedAt(final DateTime updatedAt) {
    this.updatedAt = updatedAt;
  }

  /**
   * The UUID is useful for matching data with the CSV exports and building URLs into Recurly's UI.
   */
  public String getUuid() {
    return this.uuid;
  }

  /**
   * @param uuid The UUID is useful for matching data with the CSV exports and building URLs into
   *     Recurly's UI.
   */
  public void setUuid(final String uuid) {
    this.uuid = uuid;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy