ElishaMayer / masav

MIT License
5 stars 1 forks source link

Masav

A JavaScript library for building "Masav" files - Israeli sending payments file Masav. The package can build only "send payments" and "get payments" files as described in the following files: Mifrat Zikuim MSV.pdf, Mifrat Hiuvim MSV.pdf.

For implementing other Masav files, please contact me at elisha.mayer.il@gmail.com.

Warning! This npm package not supported by "Masav"

Installation

npm i masav

Importing

 // For send payments files
const { InstitutionSendPayment, SendPaymentsRecord, MasaVSendPayments } = require("masav");
 // For get payments files
const { InstitutionGetPayment, GetPaymentsRecord, MasaVGetPayments } = require("masav");

Building Masav Send Payments File

To build a file you will need the institution details that you got from "Masav", and details about the transactions. You will need to create an instance of MasaVSendPayments.

let masavFile = new MasaVSendPayments();

And an instance of InstitutionSendPayment.

let institution = new InstitutionSendPayment(
  "12345678",
  "12345",
  "201005",
  "201005",
  "<Company-Name>",
  "001"
);
The constructor of InstitutionSendPayment get the following arguments: Argument Name Description Format
institutionId The institution Id ( Given by Masav ) String, Numbers only, Max length 8 digits
sendingInstitutionId The sending institution Id ( Given by Masav ) String, Numbers only, Max length 5 digits
createDate The creation date of the record String, Date in the following format YYMMDD
paymentDate The payment date String, Date in the following format YYMMDD
institutionName The institution name String, Max length 30 characters
serialNumber Serial number of the record String, Numbers only, Max length 3 digits

Then add the transactions to the institution

institution.addPaymentRecords([
  new SendPaymentsRecord(
    "01",
    "123",
    "123456789",
    "000000018",
    "Receiver Name",
    "000001234",
    12
  ),
  new SendPaymentsRecord(
    "09",
    "222",
    "654321",
    "000000018",
    "Receiver Name",
    "000001234",
    100.12
  ),
]);
The constructor of SendPaymentsRecord get the following arguments: Argument Name Description Format
bankId The bank Id number String, Numbers only, Max length 2 digits
branchId The bank branch Id String, Numbers only, Max length 3 digits
accountId The bank account number String, Numbers only, Max length 9 digits
payeeId Payee id ( תעודת זהות ) String, Numbers only, Max length 9 digits
payeeName Payee name String, Max length 16 characters
payeeNumber Payee number String, Max length 20 characters
amount Amount to pay Number, Bigger than 0, Up to 2 digits after decimal
paymentPeriod Payment period TimeSpan ( gets start and end date as string YYMM ) not required

Add the institution to the file

masavFile.addInstitution(institution);

Save the file ( Works only on Nodejs )

masavFile.saveFile('test.bin');

Or get Buffer

let buffer = masavFile.toBuffer();

Full Example

const { InstitutionSendPayment, SendPaymentsRecord, MasaVSendPayments } = require("masav");

let masavFile = new MasaVSendPayments();
let institution = new InstitutionSendPayment(
  "12345678",
  "12345",
  "201005",
  "201005",
  "<Company-Name>",
  "001"
);
institution.addPaymentRecords([
  new SendPaymentsRecord(
    "01",
    "123",
    "123456789",
    "000000018",
    "Receiver Name",
    "000001234",
    12
  ),
  new SendPaymentsRecord(
    "09",
    "222",
    "654321",
    "000000018",
    "Receiver Name",
    "000001234",
    100.12
  ),
]);
masavFile.addInstitution(institution);
masavFile.saveFile('test.bin');

Building Masav Get Payments File

To build a file you will need the institution details that you got from "Masav", and details about the transactions. You will need to create an instance of MasaVGetPayments.

let masavFile = new MasaVGetPayments();

And an instance of InstitutionGetPayment.

let institution = new InstitutionGetPayment(
  "12345678",
  "12345",
  "201005",
  "201005",
  "<Company-Name>",
  "001"
);
The constructor of InstitutionGetPayment get the following arguments: Argument Name Description Format
institutionId The institution Id ( Given by Masav ) String, Numbers only, Max length 8 digits
sendingInstitutionId The sending institution Id ( Given by Masav ) String, Numbers only, Max length 5 digits
createDate The creation date of the record String, Date in the following format YYMMDD
paymentDate The payment date String, Date in the following format YYMMDD
institutionName The institution name String, Max length 30 characters
serialNumber Serial number of the record String, Numbers only, Max length 3 digits

Then add the transactions to the institution

institution.addPaymentRecords([
  new GetPaymentsRecord(
    "01",
    "123",
    "123456789",
    "000000018",
    "Receiver Name",
    "000001234",
    12
  ),
  new GetPaymentsRecord(
    "09",
    "222",
    "654321",
    "000000018",
    "Receiver Name",
    "000001234",
    100.12
  ),
]);
The constructor of GetPaymentsRecord get the following arguments: Argument Name Description Format
bankId The bank Id number String, Numbers only, Max length 2 digits
branchId The bank branch Id String, Numbers only, Max length 3 digits
accountId The bank account number String, Numbers only, Max length 9 digits
payeeId Payee id ( תעודת זהות ) String, Numbers only, Max length 9 digits
payeeName Payee name String, Max length 16 characters
payeeNumber Payee number String, Max length 20 characters
amount Amount to pay Number, Bigger than 0, Up to 2 digits after decimal
paymentPeriod Payment period TimeSpan ( gets start and end date as string YYMM ) not required

Add the institution to the file

masavFile.addInstitution(institution);

Save the file ( Works only on Nodejs )

masavFile.saveFile('test.bin');

Or get Buffer

let buffer = masavFile.toBuffer();

Full Example

const { InstitutionGetPayment, GetPaymentsRecord, MasaVGetPayments } = require("masav");

let masavFile = new MasaVGetPayments();
let institution = new InstitutionGetPayment(
  "12345678",
  "12345",
  "201005",
  "201005",
  "<Company-Name>",
  "001"
);

institution.addPaymentRecords([
  new GetPaymentsRecord(
    "01",
    "123",
    "123456789",
    "000000018",
    "Receiver Name",
    "000001234",
    12
  ),
  new GetPaymentsRecord(
    "09",
    "222",
    "654321",
    "000000018",
    "Receiver Name",
    "000001234",
    100.12
  ),
]);
masavFile.addInstitution(institution);
masavFile.saveFile('test.bin');