@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.
216 lines • 12.5 kB
TypeScript
/**
* AdvancedBilling
*
* This file was automatically generated for Maxio by APIMATIC v3.0 ( https://www.apimatic.io ).
*/
import { ApiResponse, RequestOptions } from '../core.js';
import { CreateSignupProformaPreviewInclude } from '../models/createSignupProformaPreviewInclude.js';
import { CreateSubscriptionRequest } from '../models/createSubscriptionRequest.js';
import { Direction } from '../models/direction.js';
import { ListProformaInvoicesResponse } from '../models/listProformaInvoicesResponse.js';
import { ProformaInvoice } from '../models/proformaInvoice.js';
import { ProformaInvoiceStatus } from '../models/proformaInvoiceStatus.js';
import { SignupProformaPreviewResponse } from '../models/signupProformaPreviewResponse.js';
import { VoidInvoiceRequest } from '../models/voidInvoiceRequest.js';
import { BaseController } from './baseController.js';
export declare class ProformaInvoicesController extends BaseController {
/**
* This endpoint will trigger the creation of a consolidated proforma invoice asynchronously. It will
* return a 201 with no message, or a 422 with any errors. To find and view the new consolidated
* proforma invoice, you may poll the subscription group listing for proforma invoices; only one
* consolidated proforma invoice may be created per group at a time.
*
* If the information becomes outdated, simply void the old consolidated proforma invoice and generate
* a new one.
*
* ## Restrictions
*
* Proforma invoices are only available on Relationship Invoicing sites. To create a proforma invoice,
* the subscription must not be prepaid, and must be in a live state.
*
* @param uid The uid of the subscription group
* @return Response from the API call
*/
createConsolidatedProformaInvoice(uid: string, requestOptions?: RequestOptions): Promise<ApiResponse<void>>;
/**
* Only proforma invoices with a `consolidation_level` of parent are returned.
*
* By default, proforma invoices returned on the index will only include totals, not detailed
* breakdowns for `line_items`, `discounts`, `taxes`, `credits`, `payments`, `custom_fields`. To
* include breakdowns, pass the specific field as a key in the query with a value set to true.
*
*
* @param uid The uid of the subscription group
* @param lineItems Include line items data
* @param discounts Include discounts data
* @param taxes Include taxes data
* @param credits Include credits data
* @param payments Include payments data
* @param customFields Include custom fields data
* @return Response from the API call
*/
listSubscriptionGroupProformaInvoices({ uid, lineItems, discounts, taxes, credits, payments, customFields, }: {
uid: string;
lineItems?: boolean;
discounts?: boolean;
taxes?: boolean;
credits?: boolean;
payments?: boolean;
customFields?: boolean;
}, requestOptions?: RequestOptions): Promise<ApiResponse<ListProformaInvoicesResponse>>;
/**
* Use this endpoint to read the details of an existing proforma invoice.
*
* ## Restrictions
*
* Proforma invoices are only available on Relationship Invoicing sites.
*
* @param proformaInvoiceUid The uid of the proforma invoice
* @return Response from the API call
*/
readProformaInvoice(proformaInvoiceUid: string, requestOptions?: RequestOptions): Promise<ApiResponse<ProformaInvoice>>;
/**
* This endpoint will create a proforma invoice and return it as a response. If the information becomes
* outdated, simply void the old proforma invoice and generate a new one.
*
* If you would like to preview the next billing amounts without generating a full proforma invoice,
* use the renewal preview endpoint.
*
* ## Restrictions
*
* Proforma invoices are only available on Relationship Invoicing sites. To create a proforma invoice,
* the subscription must not be in a group, must not be prepaid, and must be in a live state.
*
* @param subscriptionId The Chargify id of the subscription
* @return Response from the API call
*/
createProformaInvoice(subscriptionId: number, requestOptions?: RequestOptions): Promise<ApiResponse<ProformaInvoice>>;
/**
* By default, proforma invoices returned on the index will only include totals, not detailed
* breakdowns for `line_items`, `discounts`, `taxes`, `credits`, `payments`, or `custom_fields`. To
* include breakdowns, pass the specific field as a key in the query with a value set to `true`.
*
* @param subscriptionId The Chargify id of the subscription
* @param startDate The beginning date range for the invoice's Due Date, in the YYYY-
* MM-DD format.
* @param endDate The ending date range for the invoice's Due Date, in the YYYY-MM-
* DD format.
* @param status The current status of the invoice. Allowed Values: draft, open,
* paid, pending, voided
* @param page Result records are organized in pages. By default, the first page
* of results is displayed. The page parameter specifies a page
* number of results to fetch. You can start navigating through the
* pages to consume the results. You do this by passing in a page
* parameter. Retrieve the next page by adding ?page=2 to the query
* string. If there are no results to return, then an empty result
* set will be returned. Use in query `page=1`.
* @param perPage This parameter indicates how many records to fetch in each
* request. Default value is 20. The maximum allowed values is 200;
* any per_page value over 200 will be changed to 200. Use in query
* `per_page=200`.
* @param direction The sort direction of the returned invoices.
* @param lineItems Include line items data
* @param discounts Include discounts data
* @param taxes Include taxes data
* @param credits Include credits data
* @param payments Include payments data
* @param customFields Include custom fields data
* @return Response from the API call
*/
listProformaInvoices({ subscriptionId, startDate, endDate, status, page, perPage, direction, lineItems, discounts, taxes, credits, payments, customFields, }: {
subscriptionId: number;
startDate?: string;
endDate?: string;
status?: ProformaInvoiceStatus;
page?: number;
perPage?: number;
direction?: Direction;
lineItems?: boolean;
discounts?: boolean;
taxes?: boolean;
credits?: boolean;
payments?: boolean;
customFields?: boolean;
}, requestOptions?: RequestOptions): Promise<ApiResponse<ListProformaInvoicesResponse>>;
/**
* This endpoint will void a proforma invoice that has the status "draft".
*
* ## Restrictions
*
* Proforma invoices are only available on Relationship Invoicing sites.
*
* Only proforma invoices that have the appropriate status may be reopened. If the invoice identified
* by {uid} does not have the appropriate status, the response will have HTTP status code 422 and an
* error message.
*
* A reason for the void operation is required to be included in the request body. If one is not
* provided, the response will have HTTP status code 422 and an error message.
*
* @param proformaInvoiceUid The uid of the proforma invoice
* @param body
* @return Response from the API call
*/
voidProformaInvoice(proformaInvoiceUid: string, body?: VoidInvoiceRequest, requestOptions?: RequestOptions): Promise<ApiResponse<ProformaInvoice>>;
/**
* Return a preview of the data that will be included on a given subscription's proforma invoice if one
* were to be generated. It will have similar line items and totals as a renewal preview, but the
* response will be presented in the format of a proforma invoice. Consequently it will include
* additional information such as the name and addresses that will appear on the proforma invoice.
*
* The preview endpoint is subject to all the same conditions as the proforma invoice endpoint. For
* example, previews are only available on the Relationship Invoicing architecture, and previews cannot
* be made for end-of-life subscriptions.
*
* If all the data returned in the preview is as expected, you may then create a static proforma
* invoice and send it to your customer. The data within a preview will not be saved and will not be
* accessible after the call is made.
*
* Alternatively, if you have some proforma invoices already, you may make a preview call to determine
* whether any billing information for the subscription's upcoming renewal has changed.
*
* @param subscriptionId The Chargify id of the subscription
* @return Response from the API call
*/
previewProformaInvoice(subscriptionId: number, requestOptions?: RequestOptions): Promise<ApiResponse<ProformaInvoice>>;
/**
* This endpoint is only available for Relationship Invoicing sites. It cannot be used to create
* consolidated proforma invoices or preview prepaid subscriptions.
*
* Create a proforma invoice to preview costs before a subscription's signup. Like other proforma
* invoices, it can be emailed to the customer, voided, and publicly viewed on the chargifypay domain.
*
* Pass a payload that resembles a subscription create or signup preview request. For example, you can
* specify components, coupons/a referral, offers, custom pricing, and an existing customer or payment
* profile to populate a shipping or billing address.
*
* A product and customer first name, last name, and email are the minimum requirements. We recommend
* associating the proforma invoice with a customer_id to easily find their proforma invoices, since
* the subscription_id will always be blank.
*
* @param body
* @return Response from the API call
*/
createSignupProformaInvoice(body?: CreateSubscriptionRequest, requestOptions?: RequestOptions): Promise<ApiResponse<ProformaInvoice>>;
/**
* This endpoint is only available for Relationship Invoicing sites. It cannot be used to create
* consolidated proforma invoice previews or preview prepaid subscriptions.
*
* Create a signup preview in the format of a proforma invoice to preview costs before a subscription's
* signup. You have the option of optionally previewing the first renewal's costs as well. The proforma
* invoice preview will not be persisted.
*
* Pass a payload that resembles a subscription create or signup preview request. For example, you can
* specify components, coupons/a referral, offers, custom pricing, and an existing customer or payment
* profile to populate a shipping or billing address.
*
* A product and customer first name, last name, and email are the minimum requirements.
*
* @param include Choose to include a proforma invoice preview for the
* first renewal. Use in query
* `include=next_proforma_invoice`.
* @param body
* @return Response from the API call
*/
previewSignupProformaInvoice(include?: CreateSignupProformaPreviewInclude, body?: CreateSubscriptionRequest, requestOptions?: RequestOptions): Promise<ApiResponse<SignupProformaPreviewResponse>>;
}
//# sourceMappingURL=proformaInvoicesController.d.ts.map