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}