001package io.konik.sdk.invoice;
002
003import io.konik.zugferd.Invoice;
004
005import java.io.InputStream;
006
007public interface InvoiceApi {
008
009        InvoiceDocument getInvoice(String id);
010
011        InvoiceResponse createInvoice(Invoice invoice);
012
013        InvoiceResponse createDraftInvoice(Invoice invoice);
014
015        InvoiceResponse updateInvoice(String invoiceId, Invoice invoice);
016
017        InvoiceResponse updateDraftInvoice(String invoiceId, Invoice invoice);
018
019        InputStream downloadInvoiceAsPDF(String invoiceId);
020
021        void deleteInvoice(String invoiceId);
022
023        boolean sendInvoice(String invoiceId, String email, String message);
024
025        boolean sendInvoice(String invoiceId, String email);
026
027        InvoiceResponse uploadInvoice(InputStream pdf, InvoiceDocument.Type type);
028
029        StatusResponse updateStatus(String invoiceId, Status status);
030}