UNPKG

razorpay

Version:
404 lines (389 loc) 13.3 kB
import { IMap, INormalizeError, INotify, RazorpayPaginationOptions } from './api' import { Items } from './items'; import { Tokens } from './tokens'; export declare namespace Invoices { interface RazorpayInvoiceBaseRequestBody { /** * Indicates the type of entity. Here, it is `invoice`. */ type: 'invoice' | 'link'; /** * A brief description of the invoice. */ description?: string | null; /** * Invoice is created in `draft` state when value is set to `1`. */ draft?: string; date?: number | null; /** * You can pass the customer_id in this field, if you are using the * [Customers API](https://razorpay.com/docs/api/customers/). * If not, you can pass the customer object described in the below fields. */ customer_id?: string; /** * The currency associated with the invoice. */ currency?: string; /** * Customer details. */ customer?: RazorpayCustomerDetailsBaseRequestBody; /** * The unique identifier of the order associated with the invoice. */ order_id?: string; /** * Details of the line item that is billed in the invoice. * Maximum of 50 line items. */ line_items: RazorpayLineItemsBaseRequestBody[]; /** * Timestamp, in Unix format, at which the invoice will expire. */ expire_by?: number | null; /** * Defines who handles the SMS notification. `1` (default) */ sms_notify?: boolean | 0 | 1; /** * Defines who handles the email notification. `1` (default) */ email_notify?: boolean | 0 | 1; /** * Indicates whether the customer can make a partial payment on the invoice. `false` (default) */ partial_payment?: boolean | 0 | 1; /** * Any custom notes added to the invoice. Maximum of 2048 characters. */ notes?: IMap<string | number>; /** * The unique receipt number that you entered for internal purposes. */ receipt?: string | null; /** * Amount to be paid using the invoice */ amount?: number | string; } interface RazorpayInvoiceAddressBaseRequestBody { /** * The first line of the customer's address. */ line1: string; /** * The second line of the customer's address. */ line2?: string; /** * The zipcode */ zipcode: string | number; /** * The city */ city: string; /** * The state */ state?: string; /** * The country */ country: string; } interface RazorpayInvoiceAddress extends RazorpayInvoiceAddressBaseRequestBody { id: string; type: string; primary: boolean; contact: string | null; name: string | null; tag: string | null; landmark: string | null; } interface RazorpayCustomerDetailsBaseRequestBody { /** * Customer's name. Alphanumeric, with period (.),apostrophe (') and * parentheses allowed. The name must be between 3-50 characters in * length. For example, Gaurav Kumar. */ name?: string | null; /** * The customer's email address. A maximum length of 64 characters. * For example, `gaurav.kumar@example.com`. */ email?: string | null; /** * The customer's phone number. A maximum length of * 15 characters including country code. */ contact?: string | number | null; /** * Details of the customer's billing address. */ billing_address?: RazorpayInvoiceAddressBaseRequestBody; /** * Details of the customer's shipping address. */ shipping_address?: RazorpayInvoiceAddressBaseRequestBody; } interface RazorpayCustomerDetails extends Omit<RazorpayCustomerDetailsBaseRequestBody, 'billing_address' | 'shipping_address'> { /** * Unique identifier of the customer */ id?: string; /** * GST number linked to the customer. */ gstin?: string | null; /** * The customer's name. */ customer_name?: string | null; /** * The customer's email address. */ customer_email?: string | null; /** * The customer's contact number. */ customer_contact?: string | null; /** * Details of the customer's billing address. */ billing_address?: RazorpayInvoiceAddress; /** * Details of the customer's shipping address. */ shipping_address?: RazorpayInvoiceAddress; } interface RazorpayInvoiceCreateRequestBody extends RazorpayInvoiceBaseRequestBody { } interface RazorpayInvoiceUpdateRequestBody extends Partial<RazorpayInvoiceBaseRequestBody> { } interface RazorpayLineItemsBaseRequestBody extends Partial<Items.RazorpayItemCreateRequestBody> { /** * Unique identifier that is generated if a new item has been created while creating the invoice. */ id?: string; /** * Unique identifier of the item generated using Items API that has been billed in the invoice. */ item_id?: string; /** * The quantity of the item billed in the invoice. Defaults to `1`. */ quantity?: number; } interface RazorpayLineItems extends Items.RazorpayItem { item_id?: string; ref_id: string | null; ref_type: string | null; gross_amount: number | null; tax_amount: number | null; taxable_amount: number | null; net_amount: number | null; taxes: any[]; quantity: number; } interface RazorpayInvoice extends RazorpayInvoiceBaseRequestBody { /** * The unique identifier of the invoice. */ id: string; /** * Indicates the type of entity. */ entity: string; /** * Unique number you added for internal reference. * The minimum character length is 1 and maximum is 40. */ invoice_number: string; /** * Details of the customer. */ customer_details: RazorpayCustomerDetails; /** * Details of the line item that is billed in the invoice. * Maximum of 50 line items. */ line_items: RazorpayLineItems[]; /** * Unique identifier of a payment made against this invoice. */ payment_id?: string | null; /** * Timestamp, in Unix format, at which the invoice was issued to the customer. */ issued_at?: number | null; /** * Timestamp, in Unix format, at which the payment was made. */ paid_at?: number | null; /** * Timestamp, in Unix format, at which the invoice was cancelled. */ cancelled_at?: number | null; /** * Timestamp, in Unix format, at which the invoice expired. */ expired_at?: number | null; /** * The delivery status of the SMS notification for the invoice * sent to the customer. */ sms_status?: 'pending' | 'sent' | null; /** * The delivery status of the email notification for the invoice * sent to the customer. */ email_status?: 'pending' | 'sent' | null; gross_amount?: number; tax_amount?: number; taxable_amount?: number; /** * The status of the invoice. Know more about * [Invoice States](https://razorpay.com/docs/payments/invoices/states) . */ status?: | 'draft' | 'issued' | 'partially_paid' | 'paid' | 'cancelled' | 'cancelled' | 'expired' | 'deleted'; /** * Amount paid by the customer against the invoice. */ amount_paid?: number; /** * The remaining amount to be paid by the customer for the issued invoice. */ amount_due?: number; /** * The short URL that is generated. Share this link with customers to accept payments. */ short_url?: string | null; currency_symbol?: string | null; billing_start?: number | null; billing_end?: number | null; group_taxes_discounts?: boolean; terms?: number | null; comment?: number | null; /** * Timestamp, in Unix format, at which the invoice was cancelled. */ created_at: number; view_less?: boolean; idempotency_key?: any ref_num?: any; /** * Details related to the authorization transaction such as max amount and bank * account information. Pass a value in the `first_payment_amount` parameter * if you want to auto-charge the customer the first payment immediately * after authorization. */ token?: Tokens.RazorpayAuthorizationToken; } interface RazorpayInvoiceQuery extends RazorpayPaginationOptions { type?: string; /** * The unique identifier of the payment made by the customer against the invoice. */ payment_id?: string; /** * The unique receipt number that you entered for internal purposes. */ receipt?: string; /** * The unique identifier of the customer. When used, * fetches all invoices generated for a customer. */ customer_id?: string; /** * The unique identifier linked to the Subscription. */ subscription_id?: string; } } declare function invoices(api: any): { /** * Creates a invoice * * @param params - Check [doc](https://razorpay.com/docs/api/payments/invoices/#create-an-invoice) for required params * */ create(params: Invoices.RazorpayInvoiceCreateRequestBody): Promise<Invoices.RazorpayInvoice> create(params: Invoices.RazorpayInvoiceCreateRequestBody, callback: (err: INormalizeError | null, data: Invoices.RazorpayInvoice) => void): void; /** * Get all invoices * * @param params - Check [doc](https://razorpay.com/docs/api/payments/invoices/#fetch-multiple-invoices) for required params * */ all(params?: Invoices.RazorpayInvoiceQuery): Promise<{ entity: string; count: number; items: Array<Invoices.RazorpayInvoice>; }> all(params: Invoices.RazorpayInvoiceQuery, callback: (err: INormalizeError | null, data: { entity: string, count: number, items: Array<Invoices.RazorpayInvoice> }) => void): void /** * Fetches a invoice given Invoice ID * * @param invoiceId - The unique identifier of the invoice * */ fetch(invoiceId: string): Promise<Invoices.RazorpayInvoice> fetch(invoiceId: string, callback: (err: INormalizeError | null, data: Invoices.RazorpayInvoice) => void): void; /** * Edit a invoice given Invoice ID * * @param invoiceId - The unique identifier of the invoice * @param params - Check [doc](https://razorpay.com/docs/api/payments/invoices/#update-an-invoice) for required params * */ edit(invoiceId: string, params: Invoices.RazorpayInvoiceUpdateRequestBody): Promise<Invoices.RazorpayInvoice> edit(invoiceId: string, params: Invoices.RazorpayInvoiceUpdateRequestBody, callback: (err: INormalizeError | null, data: Invoices.RazorpayInvoice) => void): void; /** * Issue an invoice * * @param invoiceId - The unique identifier of the invoice * */ issue(invoiceId: string): Promise<Invoices.RazorpayInvoice> issue(invoiceId: string, callback: (err: INormalizeError | null, data: Invoices.RazorpayInvoice) => void): void; /** * Delete an invoice * * @param invoiceId - The unique identifier of the invoice * */ delete(invoiceId: string): Promise<[]> delete(invoiceId: string, callback: (err: INormalizeError | null, data: []) => void): void; /** * Cancel an invoice * * @param invoiceId - The unique identifier of the invoice * */ cancel(invoiceId: string): Promise<Invoices.RazorpayInvoice> cancel(invoiceId: string, callback: (err: INormalizeError | null, data: Invoices.RazorpayInvoice) => void): void; /** * Send notification * * @param invoiceId - The unique identifier of the invoice * @param medium - Possible values: `sms`, `email` * */ notifyBy(invoiceId: string, medium: INotify): Promise<{ success: boolean }> notifyBy(invoiceId: string, medium: INotify, callback: (err: INormalizeError | null, data: { success: boolean }) => void): void; } export default invoices