@maxio-com/advanced-billing-sdk
Version:
Ultimate billing and pricing flexibility for B2B SaaS. Maxio integrates directly into your product, so you can seamlessly manage your product catalog, bill customers, and collect payments.
134 lines (130 loc) • 6.87 kB
text/typescript
/**
* AdvancedBilling
*
* This file was automatically generated for Maxio by APIMATIC v3.0 ( https://www.apimatic.io ).
*/
import {
array,
expandoObject,
lazy,
number,
optional,
Schema,
string,
} from '../schema.js';
import {
CreditNoteApplication,
creditNoteApplicationSchema,
} from './creditNoteApplication.js';
import {
CreditNoteLineItem,
creditNoteLineItemSchema,
} from './creditNoteLineItem.js';
import {
CreditNoteStatus,
creditNoteStatusSchema,
} from './creditNoteStatus.js';
import { InvoiceAddress, invoiceAddressSchema } from './invoiceAddress.js';
import { InvoiceCustomer, invoiceCustomerSchema } from './invoiceCustomer.js';
import { InvoiceDiscount, invoiceDiscountSchema } from './invoiceDiscount.js';
import { InvoiceRefund, invoiceRefundSchema } from './invoiceRefund.js';
import { InvoiceSeller, invoiceSellerSchema } from './invoiceSeller.js';
import { InvoiceTax, invoiceTaxSchema } from './invoiceTax.js';
import { OriginInvoice, originInvoiceSchema } from './originInvoice.js';
export interface CreditNote {
/** Unique identifier for the credit note. It is generated automatically by Chargify and has the prefix "cn_" followed by alphanumeric characters. */
uid?: string;
/** ID of the site to which the credit note belongs. */
siteId?: number;
/** ID of the customer to which the credit note belongs. */
customerId?: number;
/** ID of the subscription that generated the credit note. */
subscriptionId?: number;
/**
* A unique, identifying string that appears on the credit note and in places it is referenced.
* While the UID is long and not appropriate to show to customers, the number is usually shorter and consumable by the customer and the merchant alike.
*/
number?: string;
/** A monotonically increasing number assigned to credit notes as they are created. This number is unique within a site and can be used to sort and order credit notes. */
sequenceNumber?: number;
/**
* Date the credit note was issued to the customer. This is the date that the credit was made available for application, and may come before it is fully applied.
* The format is `"YYYY-MM-DD"`.
*/
issueDate?: string;
/**
* Credit notes are applied to invoices to offset invoiced amounts - they reduce the amount due. This field is the date the credit note became fully applied to invoices.
* If the credit note has been partially applied, this field will not have a value until it has been fully applied.
* The format is `"YYYY-MM-DD"`.
*/
appliedDate?: string;
/** Current status of the credit note. */
status?: CreditNoteStatus;
/** The ISO 4217 currency code (3 character string) representing the currency of the credit note amount fields. */
currency?: string;
/** The memo printed on credit note, which is a description of the reason for the credit. */
memo?: string;
/** Information about the seller (merchant) listed on the masthead of the credit note. */
seller?: InvoiceSeller;
/** Information about the customer who is owner or recipient the credited subscription. */
customer?: InvoiceCustomer;
/** The billing address of the credit subscription. */
billingAddress?: InvoiceAddress;
/** The shipping address of the credited subscription. */
shippingAddress?: InvoiceAddress;
/** Subtotal of the credit note, which is the sum of all line items before discounts or taxes. Note that this is a positive amount representing the credit back to the customer. */
subtotalAmount?: string;
/** Total discount applied to the credit note. Note that this is a positive amount representing the discount amount being credited back to the customer (i.e. a credit on an earlier discount). For example, if the original purchase was $1.00 and the original discount was $0.10, a credit of $0.50 of the original purchase (half) would have a discount credit of $0.05 (also half). */
discountAmount?: string;
/** Total tax of the credit note. Note that this is a positive amount representing a previously taxex amount being credited back to the customer (i.e. a credit of an earlier tax). For example, if the original purchase was $1.00 and the original tax was $0.10, a credit of $0.50 of the original purchase (half) would also have a tax credit of $0.05 (also half). */
taxAmount?: string;
/** The credit note total, which is `subtotal_amount - discount_amount + tax_amount`.' */
totalAmount?: string;
/** The amount of the credit note that has already been applied to invoices. */
appliedAmount?: string;
/** The amount of the credit note remaining to be applied to invoices, which is `total_amount - applied_amount`. */
remainingAmount?: string;
/** Line items on the credit note. */
lineItems?: CreditNoteLineItem[];
discounts?: InvoiceDiscount[];
taxes?: InvoiceTax[];
applications?: CreditNoteApplication[];
refunds?: InvoiceRefund[];
/** An array of origin invoices for the credit note. Learn more about [Origin Invoice from our docs](https://maxio.zendesk.com/hc/en-us/articles/24252261284749-Credit-Notes-Proration#origin-invoices) */
originInvoices?: OriginInvoice[];
[key: string]: unknown;
}
export const creditNoteSchema: Schema<CreditNote> = lazy(() =>
expandoObject({
uid: ['uid', optional(string())],
siteId: ['site_id', optional(number())],
customerId: ['customer_id', optional(number())],
subscriptionId: ['subscription_id', optional(number())],
number: ['number', optional(string())],
sequenceNumber: ['sequence_number', optional(number())],
issueDate: ['issue_date', optional(string())],
appliedDate: ['applied_date', optional(string())],
status: ['status', optional(creditNoteStatusSchema)],
currency: ['currency', optional(string())],
memo: ['memo', optional(string())],
seller: ['seller', optional(invoiceSellerSchema)],
customer: ['customer', optional(invoiceCustomerSchema)],
billingAddress: ['billing_address', optional(invoiceAddressSchema)],
shippingAddress: ['shipping_address', optional(invoiceAddressSchema)],
subtotalAmount: ['subtotal_amount', optional(string())],
discountAmount: ['discount_amount', optional(string())],
taxAmount: ['tax_amount', optional(string())],
totalAmount: ['total_amount', optional(string())],
appliedAmount: ['applied_amount', optional(string())],
remainingAmount: ['remaining_amount', optional(string())],
lineItems: ['line_items', optional(array(creditNoteLineItemSchema))],
discounts: ['discounts', optional(array(invoiceDiscountSchema))],
taxes: ['taxes', optional(array(invoiceTaxSchema))],
applications: [
'applications',
optional(array(creditNoteApplicationSchema)),
],
refunds: ['refunds', optional(array(invoiceRefundSchema))],
originInvoices: ['origin_invoices', optional(array(originInvoiceSchema))],
})
);