הקדמה, הסבר ודוגמאות למהות ה-API:

ייעודו של ה-API הוא לשמש תשתית למשתמשי אתרי מכירות אינטרנטיים ותכנות עסקיות אחרות (כגון ERP, CRM וכדומה) שמעוניינים לממשק את התכנות הללו אל לינט בממשק שהוא גם אוטומטי, גם בזמן אמת וגם דו כיווני.

דוגמה ליישום ה-API: נניח שאני בעלים של עסק עם חנות אינטרנטית ואני רוצה שכשלקוח נרשם על מנת לרכוש משהו בחנות הווירטואלית שלי, האתר יבדוק תחילה בלינט האם קיים כבר לקוח בשם זה ואם לא החנות תרשום אותו בתור לקוח חדש בלינט. כנ"ל גם לגבי המוצר/ים שהלקוח מעוניין לרכוש: האתר יבצע בדיקה מול לינט אם המוצר קיים במלאי ואם כן, תתבצע המכירה שבסופה החנות תשלח בקשות ללינט על מנת לבצע חיוב כרטיס אשראי של הלקוח, להפיק חשבונית מס קבלה, לשלוח אותה ללקוח במייל, ולהדפיס תעודת משלוח לשם ביצוע משלוח פיסי של המוצר במידת הצורך.

במקרה כזה, עלי כלקוח מוטלת החובה להוסיף שורות קוד בתכנת החנות הווירטואלית. הפקודות שהוא יוסיף לתוכנה שלו חייבות להיות במסגרת הכללים שמכתיב ה-API של לינט.

מצד אחד, נכון שפיתוח מסוג זה מצריך ידע בסיסי בתכנות והוא מחוץ לגדר יכולותיו של משתמש מהשורה, אבל מצד שני שימוש ב-API מקצר מאוד את זמן הפיתוח הדרוש לביצוע ממשק כזה מכיוון שיש צורך בפיתוח קוד רק בצד אחד של ההתממשקות שבין שתי התכנות: רק בצד התכנה המתחברת אל לינט. במילים אחרות: אין צורך לשנות את הקוד של לינט על מנת לממשק את לינט לתוכנה אחרת.

להלן מדריך פקודות ל-API של לינט. הוא כתוב באנגלית על מנת להקל על המתכנת:

 

Linet implements RESTful approach for its API.

 

All  access to the API is made by making requests towards the Linet Software as a service URL and using the context API: https://app.linet.org.il/api/

 

To use the API you must provide a valid login with three mandatory credentials: API ID & API Key & Company ID

Both API ID & API Key can be found in Settings menu at Linet app user interface (machine wheels on left side header corner)->User management->Click on edit icon of appropriate user context the Api will function through->Select API key tab->Click on create new API key->This is a unique-one time show- of both the API ID and the API KEY, you should copy them to some text editor->click create buton.

Company ID can be found next to Company Name at change companies screen (Settings menu at Linet app user interface (machine wheels on left side header corner)->Change company

 

the JSON response is this format:

{

“status”: http status code. as inhttp://en.wikipedia.org/wiki/List_of_HTTP_status_codes

“text”: http status code description.

“body”: the object

“errorCode”: if an error is provided the body will have a description in text normaly 1}

 1

Supported models in the API

Models with no company dependency:

company

user

language        

acccountry

Other supported models (company dependent models):        

AuthAssignment         //dual mode*

AuthItem                    //dual mode*

AuthItemChild         //dual mode*

bankbook

bankname

settings

accounts

acctype

accid6111

acchist

currates

docs

doctype

item

itemcategory

inventoryitem

itemunit

itemvatcat

userincomemap

transaction

files

paymenttype

 

 

*Models marked indual mode can also work with no company select  but then they are working on global scope. If company is selected the command will work only on selected company.

 

 

 

        

Search

POST:                /api/search/<modelName>

BODY:                {

login_id:”userId”,

login_hash:”userHash”,

login_company:”companyId”,

<modelAttribute>:”<value>”,

}

RESPONSE:        JSON response

List

POST:                api/list/<modelName>

BODY:                {

login_id:”userId”,

login_hash:”userHash”,

login_company:”companyId”,

}

RESPONSE:        JSON response

View

POST:                api/view/<modelName>/<id>

BODY:                {

login_id:”userId”,

login_hash:”userHash”,

login_company:”companyId”,

}

RESPONSE:        JSON response

Create

POST:                api/create/<modelName>

BODY:                {

login_id:”userId”,

login_hash:”userHash”,

login_company:”companyId”,

<modelAttribute>:”<value>”,

}

RESPONSE:        JSON response

Update

POST:                api/update/<modelName>/<id>

BODY:                {

login_id:”userId”,

login_hash:”userHash”,

login_company:”companyId”,

<modelAttribute>:”<value>”,

}

RESPONSE:        JSON response

Delete

POST:                api/delete/<modelName>/<id>

BODY:                {

login_id:”userId”,

login_hash:”userHash”,

login_company:”companyId”,

}

RESPONSE:        JSON response

 

Print

POST:                api/print/<modelName>/<id>

BODY:                {

login_id:”userId”,

login_hash:”userHash”,

login_company:”companyId”,

}

RESPONSE:        JSON response

 

Send

POST:                api/send/<modelName>/<id>

BODY:                {

login_id:”userId”,

login_hash:”userHash”,

login_company:”companyId”,

}

RESPONSE:        JSON response

Model Details

company[model index]

manage the companies in an instance.

actions:

create,update,delete,search,list,view

user[model index]

manage the users in an instance

actions:

create,update,delete,search,list,view

language[model index]

manage the available languages in an  instance

actions:

create,update,delete,search,list,view

acccountry[model index]

manage the available account countries in an instance

this model should not be used as the list is legal obligatory by the israeli tax authorities

actions:

create,update,delete,search,list,view

 

AuthAssignment[model index]         //dual mode*

 

AuthItem  [model index]                   //dual mode*

AuthItemChild  [model index]        //dual mode*

bankbook[model index]

manage Bank Book

actions:

create,update,delete,search,list,view

bankname[model index]

manage available Banks in a company

actions:

create,update,delete,search,list,view

settings[model index]

manage Company Settings (name,address,phone numbers email,zip code,tax rate…..)

actions:

create,update,delete,search,list,view

 

accounts[model index]

manage Accounts

actions:

create,update,delete,search,list,view

fields:

required: name, type

integer :cat_id, pay_terms

vatnum: if not empty must be a valid VAT number

name: varchar(80)

contact: varchar(80)

department: varchar(60)

email: varchar(50)

web: varchar(60) should be a URL

city: varchar(40)

type: get valid list fromacctype

parent_account_id: get valid list fromaccounts

currency_id: get valid list fromcurrates

system_acc: {0,1}

owner: get valid list fromuser

id6111: get valid list fromaccid6111

zip

src_tax

address

phone

dir_phone

cellular

fax

src_date

comments

 

acctype[model index]

manage Account Types(customer,supplier,bank…)

USE WITH CAUTION! If account type is deleted some functionality will might get lost. For example: If account type “customers” is deleted,  accounts belonged to this type can not be displayed anywhere within the application, although data of customer details as well as customers’ transactions would not be lost, new accounts can not be categorized as customer account etc.

actions:

create,update,delete,search,list,view

accid6111[model index]

manage Account 6111, Israeli tax authority definition

actions:

create,update,delete,search,list,view

acchist[model index]

manage Account Connection History

actions:

create,update,delete,search,list,view

Currates[model index]

manage Currency rates

actions:

create,search,list,view

 

docs[model index]

manage Documents

actions:

create,update,delete,search,list,view,print

fields:

required: account_id

disType

status

printed

owner: get valid list fromuser

city

doctype: get valid list fromdoctype

oppt_account_id: get valid list fromaccounts

account_id: get valid list fromaccounts

zip

vatnum: if not empty must be a valid VAT number

company

address

currency_id: get valid list fromcurrates

refnum: get valid list fromdocs (comma separated)

rcptsum

discount

sub_total

novat_total

vat

total

src_tax

issue_date

due_date

comments

description

refstatus

docDet:array of(

        array(

required: name, line

line

name

qty

description

unit_id: get valid list fromitemunit

item_id: get valid list fromitem

currency_id: get valid list fromcurrates

iItem: send this will overide iTotal,iTotalVat

iTotal: send only this if you want price to add VAT

iTotalVat: send only this if you want final price including VAT

)

)

docCheq:array of(

        array(

type: get valid list frompaymenttype

line

currency_id: get valid list fromcurrates

sum

        )

)

 

doctype[model index]

manage Document types(Invoice,receipt...)

USE WITH CAUTION ! If doctype is deleted, some functionality will might get lost. For example: If document type: invoices, is deleted, no invoices will be produced by the application anymore.

actions:

create,update,delete,search,list,view

 

item[model index]

manage Items

actions:

create,update,delete,search,list,view

fields:

required: sku, name, currency_id, category_id, parent_item_id, isProduct, stockType, itemVatCat_id, unit_id

integer: isProduct, profit, stockType

name: varchar(255)

itemVatCat_id: get valid list fromitemvatcat

unit_id: get valid list fromitemunit

parent_item_id: get valid list fromitem

category_id: get valid list fromitemcategory

stockType:

description: text

purchaseprice: decimal(20,2)

saleprice: decimal(20,2)

currency_id: get valid list fromCurrates

pic: file

owner: get valid list fromuser

        

 

itemcategory[model index]

manage Item Categories

actions:

create,update,delete,search,list,view

 

inventoryitem[model index]

Manage inventory item transactions between warehouses, incoming and outgoing items transactions from /to clients/suppliers.

actions:

only create,search,list,view

*can not update!

*can not delete!

 

itemunit[model index]

manage Item Unit Types(cm,kg,mg,gb,mhz...)

actions:

create,update,delete,search,list,view

 

itemvatcat[model index]

Manage VAT category for an item (useful only in countries with differential vat system by categories)

actions:

create,update,delete,search,list,view

userincomemap[model index]

Mapping of item vat category to specific income account

actions:

create,update,delete,search,list,view

transaction[model index]

manage transactions in a company

actions:

only create,search,list,view

*can not update!

*can not delete!

 

files[model index]

manage files in company

actions:

create,update,delete,search,list,view

 

paymenttype[model index]

manage files in company

actions:

create,update,delete,search,list,view

 

 

מסמך זה נכתב ונערך על ידי אדם בן חור. כל הזכויות שמורות למחבר.  © All Rights Reserved . אין להעתיק, לצלם, לפרסם את הנאמר במסמך זה בכללותו או בחלקים ממנו ללא קבלת אישור מבעל הזכויות מראש ובכתב

שעות העבודה של התמיכה הטכנית

ימים א' עד ה'

 

9:00-17:00

מספר המשתמשים הרשומים באתר

למעלה מ- 6500

שנות קיום התוכנה

6

תוכנה רשומה

Irs Registered Application Approval