• ------------------------------
  • JS API Reference

    Class: InvoiceProcessor

    payment/InvoiceProcessor.InvoiceProcessor

    A class that provides methods for working with invoices. It interacts with the Yagna API directly.

    Table of contents

    Constructors

    Methods

    Constructors

    constructor

    new InvoiceProcessor(api): InvoiceProcessor

    Use InvoiceProcessor.create() to create an instance of this class.

    Parameters

    NameType
    apiYagnaApi

    Returns

    InvoiceProcessor

    Defined in

    src/payment/InvoiceProcessor.ts:29

    Methods

    collectInvoices

    collectInvoices(options?): Promise<{}[]>

    Collects invoices from the Yagna API until the limit is reached or there are no more invoices.

    Parameters

    NameTypeDefault valueDescription
    optionsObject{}The parameters for collecting invoices.
    options.after?DateundefinedOnly collect invoices that were created after this date.
    options.limit?number50Maximum number of invoices to collect.
    options.statuses?string[]undefinedOnly collect invoices with these statuses.
    options.providerIds?string[]undefinedOnly collect invoices from these providers.
    options.minAmount?NumericundefinedOnly collect invoices with an amount greater than or equal to this.
    options.maxAmount?NumericundefinedOnly collect invoices with an amount less than or equal to this.
    options.providerWallets?string[]undefinedOnly collect invoices from these provider wallets.
    options.paymentPlatforms?string[]undefinedOnly collect invoices from these payment platforms.

    Returns

    Promise<{}[]>

    Example

    const invoices = await invoiceProcessor.collectInvoices({
     after: new Date(Date.now() - 24 * 60 * 60 * 1000), // only collect invoices that were created in the last 24 hours
     limit: 100, // only collect 100 invoices max
     statuses: ["RECEIVED"], // only collect unpaid invoices
     providerIds: ["0x1234"], // only collect invoices from this provider
     minAmount: "0.1", // only collect invoices with an amount greater than or equal to 0.1 GLM
     maxAmount: "1", // only collect invoices with an amount less than or equal to 1 GLM
     providerWallets: ["0x1234"], // only collect invoices from this provider wallet
     paymentPlatforms: ["erc20-polygon-glm"], // only collect invoices from this payment platform
    });

    Defined in

    src/payment/InvoiceProcessor.ts:57


    fetchSingleInvoice

    fetchSingleInvoice(invoiceId): Promise<Invoice>

    Fetches a single invoice from the Yagna API.

    Parameters

    NameType
    invoiceIdstring

    Returns

    Promise<Invoice>

    Defined in

    src/payment/InvoiceProcessor.ts:109


    acceptInvoice

    acceptInvoice(«destructured»): Promise<InvoiceAcceptResult>

    Creates an allocation for the exact amount of the invoice and accepts the invoice. If dryRun is true, no allocation will be created and the invoice will not be accepted.

    Parameters

    NameTypeDefault value
    «destructured»Objectundefined
    › invoiceInvoiceundefined
    › dryRun?booleanfalse

    Returns

    Promise<InvoiceAcceptResult>

    Defined in

    src/payment/InvoiceProcessor.ts:117


    acceptManyInvoices

    acceptManyInvoices(«destructured»): Promise<InvoiceAcceptResult[]>

    Creates an allocation for the exact amount of the invoices and accepts the invoices. Since the invoices can be from different payment platforms and payer addresses, multiple allocations might be created. If dryRun is true, no allocation will be created and the invoices will not be accepted. Please keep in mind that this method is not atomic, so if one of the invoices fails to be accepted, the others will still be accepted. This is a limitation of the Yagna API. Use the returned InvoiceAcceptResult to check which invoices were accepted successfully.

    Parameters

    NameTypeDefault value
    «destructured»Objectundefined
    › invoicesInvoice[]undefined
    › dryRun?booleanfalse

    Returns

    Promise<InvoiceAcceptResult[]>

    Defined in

    src/payment/InvoiceProcessor.ts:182