1.0.6 • Published 6 months ago

fns-client v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

fns-client npm version npm version

Client for get receipts using the FNS API.

Installation

npm install fns-client axios

Usage

// App.js
import * as fns from 'fns-client';

// Choose an auth and create it
const auth = new fns.LKFLAuth({ inn, password, clientSecret });
// Instantiate the client and pass the auth object
const client = new fns.Client({ auth });

async function main() {
  // Add a receipt and get receipt id
  const response = await client.addReceipt(qr);
  // By receipt id try to get detailed information, until the status is successful
  const receipt = await client.getReceipt(response.id);

  // If the status is successful, then information about the receipt is available
  if (fns.ReceiptStatusUtil.isSuccess(receipt.status)) {
    console.log(receipt.ticket?.document.receipt);
  }
}

main().catch(console.error);

Example

Auth via the personal account of the FNS (lkfl2.nalog.ru)

import * as fns from 'fns-client';

// Your INN from https://lkfl2.nalog.ru
const inn = '<your inn>';
// Your password from https://lkfl2.nalog.ru
const password = '<your password>';
// Client secret
const clientSecret = '<client secret>';

const auth = new fns.LKFLAuth({ inn, password, clientSecret });
const client = new fns.Client({ auth });

There is also authentication via OAuth2 ESIA, phone number and raw tokens.

To get information about a receipt, you must first add it

// Add receipt by fiscal data
const fiscalData = {
  date: '2021-06-14T14:32',
  operationType: 1,
  sum: 43600,
  fsId: '9982450301247855',
  documentId: 65724,
  fiscalSign: '7634185632'
};

client
  .addReceipt(fiscalData)
  .then((data) => console.log(data))
  .catch((e) => console.error(e));

We add a receipt according to the data from the QR-code on the receipt

// Add receipt by QR-data
const qr = '<your qr data scanned from the receipt>';

client
  .addReceipt(qr)
  .then((data) => console.log(data))
  .catch((e) => console.error(e));

Next, you need to periodically poll the server to check status is successfully

const receiptId = '<your receipt id received when adding it>';

async function main() {
  const receipt = await client.getReceipt(receiptId);

  // If the successful status means that the receipt has been received
  if (fns.ReceiptStatusUtil.isSuccess(receipt.status)) {
    console.log(receipt.ticket?.document.receipt);
  }
}

main().catch(console.error);

Since when you add a receipt, you create a request for it and must wait, until the internal system receives detailed information about your receipt.

See full examples here.

License

Licensed under the MIT License.

1.0.6

6 months ago

1.0.5

1 year ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago