balanc

0.2.2 • Public • Published

balanc

Modern accounting (receipts, billings, pdf storage ...) toolchain and managed service. Making accounting easy and always balance.

npm npm state npm

NPM

Why

  • if you are using NoSQL, balanc can replace traditional lock and transaction required operations for orders, invoices, receives and payments
  • if you are using SQL, balanc can solve the scale and storage problem

Demo

Receipt Pdf Demo

API

Setup config
balanc.config({
  domain: 'your-company.com',
})
Record exchange and Receipt pdf
const exchange = await balanc.exchange({
  from: 'billing@your-company.com',
  to: 'user-123',
  gives: [
    {
      quantity: 2, // two months implied by item string
      item: 'Monthly Gym Membership',
      price: 100, // sub-total price of 2 monthly Gym
      // givenAt: new Date(),
    },
  ],
  takes: [
    {
      item: 'Cash',
      price: 100,
    },
  ],
  // isPreview: true,
})
 
const pdfUrl = await balanc.receiptUrl(exchange)
 

Issue payment reminder

const receivables = await balanc.getReceivables({
  from: 'billing@your-company.com',
  to: 'user-123',
})
 
const invoiceUrl = await balanc.billingUrl({
  from: 'billing@your-company.com',
  to: 'user-123',
})
// [{url, paidAt}]
 

Access Accounts

const numbers = await balanc.getExchangeNumbers({
  from: 'billing@your-company.com',
  to: 'user-123',
})
 
const balance = await balanc.getBalance({
  user: 'billing@your-company.com',
  item: 'Cash',
})
should(balance).be.equal(100)
 
const account = await balanc.getAccount({
  user: 'billing@your-company.com',
  item: 'Cash',
})
should(account.balance).be.equal(100)
should(account.transfers.length).be.equal(1)
 
const excelUrl = balanc.accountExcelUrl({
  user: 'billing@your-company.com',
  item: 'Cash',
})
// url that access xlsx file

How

Package Sidebar

Install

npm i balanc

Weekly Downloads

5

Version

0.2.2

License

Apache-2.0

Last publish

Collaborators

  • ericfong