1.0.0 • Published 4 months ago
node-lexoffice-client v1.0.0
JS client library for lexoffice public API.
Installation
npm i node-lexoffice-client
Usage
Import as ES6 Module
import { LexOfficeClient } from 'node-lexoffice-client'
const lexOffice = new LexOfficeClient('YOUR_LEXOFFICE_API_KEY');
lexOffice.invoices.get('53b8d208-76d9-4f23-bfda-ce340af8a3b3')
.then((invoice) =>{
console.log(JSON.stringify(invoice));
})
.catch((err) =>{
console.log(err);
});
Using with CommonJS
const LexOfficeClient = require('node-lexoffice-client).default;
const lexOffice = new LexOfficeClient('YOUR_LEXOFFICE_API_KEY');
lexOffice.invoices.get('53b8d208-76d9-4f23-bfda-ce340af8a3b3')
.then((invoice) =>{
console.log(JSON.stringify(invoice));
})
.catch((err) =>{
console.log(err);
});
Using with promises or async/await
lexOffice.invoices.get('53b8d208-76d9-4f23-bfda-ce340af8a3b3')
.then((invoice) =>{
console.log(JSON.stringify(invoice));
})
.catch((err) =>{
console.log(err);
});
getInvoice();
async function getInvoice() {
try {
const invoice = await invoices.get('53b8d208-76d9-4f23-bfda-ce340af8a3b3');
console.log(JSON.stringify(invoice));
} catch (err) {
console.log(err);
}
}
Examples
API endpoints
Documentation for the public API can be found here: lexoffice public API documentation
Contacts
Methods overview
contacts.get(id)
contacts.add(contact)
contacts.update(id, contact)
contacts.filter({ "email": "mail@domain.com" })
Countries
Methods overview
countries.list()
Credit notes
creditNotes.get(id)
creditNotes.add(creditNote, {finalize:true})
creditNotes.render(id)
Delivery notes
deliveryNotes.get(id)
deliveryNotes.add(deliveryNote)
deliveryNotes.render(id)
Down payment invoices
downPaymentInvoices.get(id)
Dunnings
dunnings.get(id)
dunnings.add(dunning)
dunnings.render(id)
Event subscriptions
eventSubscriptions.get(id)
eventSubscriptions.add(eventSubscription)
eventSubscriptions.delete(id)
eventSubscriptions.list()
Files
files.download(id)
files.upload(form)
Invoices
invoices.get()
invoices.add(invoice, {finalize:true})
invoices.render(id)
Payments
payments.get(id)
Payment conditions
paymentConditions.list()
Profile
profile.get()
Quotations
quotations.get(id)
quotations.add(quotation, { finalize: true })
quotations.render(id)
Recurring templates
recurringTemplates.get(id)
recurringTemplates.list()
Vouchers
vouchers.get(id)
vouchers.add(voucher)
vouchers.update(id, voucher)
vouchers.filter({ "voucherNumber": voucherNumber })
vouchers.uploadFile(form, id)
Voucherlist
voucherlist.filter({ "voucherType": "invoice" })
Filteroptions:
voucherType: salesinvoice, salescreditnote, purchaseinvoice, purchasecreditnote, invoice, downpaymentinvoice, creditnote, orderconfirmation, quotation, deliverynote
voucherStatus: open,draft,paid,paidoff,voided
archived: 0
contactId: 97c5794f-8ab2-43ad-b459-c5980b055e4d
voucherDateFrom: 2023-07-01
voucherDateTo: 2023-07-31
createdDateFrom: 2023-07-01
createdDateTo: 2023-07-31
updatedDateFrom: 2023-07-01
updatedDateTo: 2023-07-31
page: 0
size: 250
sort: updatedDate,DESC
Error handling
import { LexOfficeClient, RequestError, RequestNotFoundError, RequestInternalServerError } from 'node-lexoffice-client'
const lexOffice = new LexOfficeClient('YOUR_LEXOFFICE_API_KEY');
lexOffice.invoices.get('53b8d208-76d9-4f23-bfda-ce340af8a3b3')
.then((invoice) =>{
console.log(JSON.stringify(invoice));
})
.catch((err) =>{
console.log(err);
if (err instanceof RequestError) {
console.log('We have a RequestError!');
if (err instanceof RequestNotFoundError) {
console.log('404 RequestNotFoundError');
}
if (err instanceof RequestInternalServerError) {
console.log('500 RequestInternalServerError');
}
}
});
Import all from LexOfficeClient.
import * as lexAPI from 'node-lexoffice-client'
const lexOffice = new lexAPI.LexOfficeClient('YOUR_LEXOFFICE_API_KEY');
lexOffice.invoices.get('53b8d208-76d9-4f23-bfda-ce340af8a3b3')
.then((invoice) =>{
console.log(JSON.stringify(invoice));
})
.catch((err) =>{
console.log(err);
if (err instanceof lexAPI.RequestError) {
console.log('Ooops RequestError!');
if (err instanceof lexAPI.RequestNotFoundError) {
console.log('404 RequestNotFoundError');
}
if (err instanceof lexAPI.RequestInternalServerError) {
console.log('500 RequestInternalServerError');
}
}
});
HTTP errors
400 RequestBadRequestError
401 RequestUnauthorizedError
402 RequestPaymentRequiredError
403 RequestForbiddenError
404 RequestNotFoundError
405 RequestMethodNotAllowedError
406 RequestMethodNotAcceptableError
409 RequestConflictError
415 RequestUnsupportedMediaTypeError
429 RequestTooManyRequestsError
Server errors
500 RequestInternalServerError
503 RequestServiceUnavailableError
504 RequestGatewayTimeoutError
Legacy errors (only files, profiles and contacts endpoints)
400 RequestBadRequestLegacyError
406 RequestMethodNotAcceptableLegacyError
500 RequestInternalServerLegacyError
1.0.0
4 months ago