Cambia lingua

Introduzione

Questa documentazione elenca le funzioni pubbliche con cui è possibile inviare e ricevere dati da applicativi SimplyDevelop attraverso il servizio WService con chiamate di tipo API REST con scambio dati in formato JSon.

 

Le chiamate verranno inoltrate al WService attraverso la porta TCP 3055

 

https://<Indirizzo_IP_WService>:3055

 

Es. Per l’url localhost https://127.0.0.1:3055

 

Ogni chiamata API deve essere accompagnata da una SessionCode.

La Session scade dopo 30 minuti dall'ultima chiamata effettuata o immediatamente dopo una login dello stesso utente con la fornitura di un nuovo SessionCode.

 

Operazioni disponibili

 

Method

Operazioni

GET

Ottenere dei record

POST

Ottenere dei record, eliminarne o crearne di nuovi

DELETE

Eliminare dei record 

Autenticazione

L’autenticazione è di tipo Basic Auth, con username e password come specificato in WService nella gestione utenti della sezione Midware; Oppure, sempre con username e password, ma con chiamata POST.

 

L'autenticazione può essere fatta nella modalità standard GET o POST come negli esempi delle tabelle di seguito.

 

Method

Url

GET

/api/login

 

Method

Url

Body Text

POST

/api/login

 

{

    "User": "midwareadmin",

    "Password": "xxxxxxxxxxxxxxxx..."

}

Esempio Risposta

 

{

    "ResponseRequest": "login",

    "SuccessStatus": true,

    "SessionCode": "KG0RNCAYLFDVPNDZHT",

    "User": "midwareadmin",

    "Data": "",

    "LastLogin": "1899-12-30T00:00:00.000+01:00"

}

Reparti

Tabella dei campi utilizzabili

 

Element

Description

Type

Max.

Size

Req’d

Read

Only

DEPARTMENTS

iddepartment

ID reparto

INTEGER

 

 

 

departmentcode

Codice reparto

INTEGER

 

 

 

departmentname

Descrizione reparto

STRING

40

 

idvat

ID IVA

INTEGER

 

 

 

vatcode

Codice IVA

STRING

 

 1

 

vatname

Descrizione IVA

STRING

100

 

 

vatpercentage

Valore percentuale IVA

FLOAT

 

 1

 

tickets

Accetta Ticket

BOOLEAN

 

 

 

discounts

Accetta Sconti

BOOLEAN

 

 

 

promotions

Accetta Promozioni

BOOLEAN

 

 

 

points

Accetta Punti

BOOLEAN

 

 

 

reference

Referenza alfanumerica del codice reparto

STRING

40

 

 

 

Legenda

 

1 Se non presente, viene inserito. 

Read

Le chiamate di lettura dei reparti, possono essere fatte nella modalità standard GET o alternativamente con specifica chiamata POST, utilizzando anche il prefisso GET come negli esempi delle tabelle di seguito.

 

Method

Url

GET

/api/departments/{SessionCode}

GET

/api/departments/{SessionCode}?iddepartment={id}

 

Method

Url

Body Text

POST

/api/getdepartments/{SessionCode}

 

POST

/api/getdepartments/{SessionCode}?iddepartment={id}

 

POST

/api/getdepartments

 

{

    "SessionCode": "KG..HT",

    "iddepartment": "id"

}

Esempio Risposta

 

{

    "ResponseRequest": "departments",

    "SuccessStatus": true,

    "departments": [

        {

            "iddepartment": 1,

            "departmentcode": 1,

            "departmentname": "REPARTO PROVA",

            "idvat": 1,

            "vatcode": "22",

            "vatname": "IVA 22%",

            "vatpercentage": 22,

            "tickets": true,

            "discounts": true,

            "promotions": false,

            "points": true

        }

    ]

}

Write

Le chiamate di inserimento dei reparti, possono essere fatte con specifica chiamata POST come da esempio della tabella di seguito.

 

Method

POST

Url

/api/setdepartments

Body Text

 

{

    "SessionCode": "KG..HT",

    "departmentcode": 1,

    "departmentname": "REPARTO PROVA",

    "idvat": 1,

    "vatcode": "22",

    "vatname": "I.V.A. 22%",

    "vatpercentage": 22,

    "ticket": true,

    "discounts": true,

    "promotions": true,

    "points": true

}

Delete

Le chiamate di eliminazione dei reparti, possono essere fatte nella modalità standard DELETE o alternativamente con specifica chiamata POST, utilizzando anche il prefisso DEL come negli esempi delle tabelle di seguito.

 

Method

Url

DELETE

/api/departments/{SessionCode}?iddepartment={id}

 

Method

Url

Body Text

POST

/api/deldepartments/{SessionCode}?iddepartment={id}

 

POST

/api/deldepartments

 

{

    "SessionCode": "KG..HT",

    "iddepartment": "id"

}

Prodotti

Tabella dei campi utilizzabili

 

Element

Description

Type

Max.

Size

Req’d

Read

Only

PRODUCTS

idproduct

ID prodotto

INTEGER

 

 1

 

productcode

Codice prodotto

STRING

20

 1

 

productname

Descrizione prodotto

STRING

40

 1

 

referencename

Descrizione alternativa

STRING

20

 

 

extendedproductname

Descrizione estesa prodotto

STRING

1000

 

 

iddepartment

ID reparto

INTEGER

 

 2

 

departmentcode

Codice reparto

STRING

 

 2

 

departmentname

Descrizione reparto

STRING

40

 

 

idvat

ID IVA

INTEGER

 

 

 

vatcode

Codice IVA

STRING

10

 3

 

vatname

Descrizione IVA

STRING

100

 

 

vatpercentage

Valore percentuale IVA

FLOAT

 

 3

 

netproductcost

Costo netto prodotto

CURRENCY

 

 

 

boxquantity

Quantità per confezione (Imballo)

FLOAT

 

 

 

idum

ID unità di misura

INTEGER

 

 

 

umcode

Codice unità di misura

STRING

10

 

 

idlabelum

ID unità di misura su etichetta

INTEGER

 

 

 

labelumcode

Codice unità di misura su etichetta

STRING

10

 

 

idbrand

ID produttore

INTEGER

 

 

 

brandname

Descrizione produttore

STRING

50

 

 

idproducttypolgy

ID tipologia prodotto

INTEGER

 

 

 

producttyplogyname

Descrizione tipologia prodotto

STRING

50

 

 

zeroprice

Vendibile a “prezzo zero”

BOOLEAN

 

 

 

variableprice

Vendibile a “prezzo variabile”

BOOLEAN

 

 

 

lots

Gestione lotti

BOOLEAN

 

 

 

tickets

Accetta Ticket

BOOLEAN

 

 

 

discounts

Accetta Sconti

BOOLEAN

 

 

 

promotions

Accetta Promozioni

BOOLEAN

 

 

 

points

Accetta Punti

BOOLEAN

 

 

 

insertdate

Data inserimento (creazione)

DATETIME

 

 

lastmodifydate

Data ultima modifica

DATETIME

 

 

PRICES

idprice

ID listino

INTEGER

 

 

 

pricevalue

Prezzo di listino

CURRENCY

 

 

 

pricename

Descrizione listino

STRING

100

 

 

pricecode

Codice listino

STRING

4

 

 

BARCODES

idbarcodeproduct

ID EAN prodotto

INTEGER

 

 

 

barcode

Codice EAN4

STRING

13

1

 

packquantity

Quantità per confezione

FLOAT

 

 

 

 

Legenda

 

1 Se idproduct non è valorizzato, viene cercato per productcode (se valorizzato). 

Se non trovato, viene agganciato il primo prodotto trovato tramite barcode (in ordine di EAN).

Se non trovato e non sono presenti EAN (barcode) e productcode vuoto, viene cercato per productname.

 

2 Stringa di tipo numerico. Se omesso su inserimento nuovo prodotto, viene agganciato al reparto di default configurato nei Tracciati Import. 

 

3 Se omesso, lo eredita dal Reparto. Se non presente in anagrafica, viene inserito. 

 

4 Se vuoto viene autogenerato.

Read

Le chiamate di lettura dei prodotti, possono essere fatte nella modalità standard GET o alternativamente con specifica chiamata POST, utilizzando anche il prefisso GET come negli esempi delle tabelle di seguito.

 

Method

Url

GET

/api/products/{SessionCode}

GET

/api/products/{SessionCode}?idproduct={id}

 

Method

Url

Body Text

POST

/api/getproducts/{SessionCode}

 

POST

/api/getproducts/{SessionCode}?idproduct={id}

 

POST

/api/getproducts

 

{

    "SessionCode": "KG..HT",

    "idproduct": "id"

}

Esempio Risposta

 

{

    "ResponseRequest": "products",

    "SuccessStatus": true,

    "products": [

        {

            "idproduct": 1,

            "productcode": "0001",

            "productname": "PRODOTTO PROVA",

            "referencename": "PRODOTTO PROVA WEB",

            "extendedproductname": "PRODOTTO PROVA ESTESO",

            "iddepartment": 1,

            "departmentcode": "1",

            "departmentname": "REPARTO PROVA",

            "idvat": 1,

            "vatcode": "22",

            "vatname": "IVA 22%",

            "vatpercentage": 22,

            "netcostproduct": 1.2,

            "boxquantity": 1,

            "idum": 1,

            "umcode": "PZ",

            "idlabelum": 1,

            "labelumcode": "PZ",

            "idbrand": 1,

            "brandname": "PRODUTTORE PROVA", 

            "idproducttyplogy": 1,

            "producttyplogyname": "TIPOLOGIA PROVA",

            "zeroprice": false,

            "variableprice": true,

            "lots": true,

            "tickets": true,

            "discounts": true,

            "promotions": false,

            "points": true,

            "insertdate": "2021-01-01T08:00:00",

            "lastmodifydate": "2025-03-01T12:00:00",

            "prices": [ 

                {

                    "idprice": 1,

                    "pricevalue": 2.5,

                    "pricename": "Listino Prova",

                    "pricecode": "0001"

                }

            ],

            "barcodes": [ 

                {

                    "idbarcodeproduct": 1234,

                    "barcode": "1234567891234",

                    "packquantity": 1

                }

            ]

        }

    ]

}

Write

Le chiamate di inserimento dei prodotti, possono essere fatte con specifica chiamata POST come da esempio della tabella di seguito.

 

Method

POST

Url

/api/setproducts

Body Text

{

    "SessionCode": "KG..HT",

    "productcode": "0001",

    "productname": "PRODOTTO PROVA",

    "referencename": "PRODOTTO PROVA WEB",

    "extendedproductname": "PRODOTTO PROVA ESTESO",

    "iddepartment": 1,

    "departmentcode": "1",

    "departmentname": "REPARTO PROVA",

    "idvat": 1,

    "vatcode": "22",

    "vatname": "I.V.A. 22%",

    "vatpercentage": 22,

    "zeroprice": false,

    "variableprice": true,

    "lots": true,

    "tickets": true,

    "discounts": true,

    "promotions": false,

    "points": true,

    "prices": [ 

        {

            "pricevalue": 2.5,

            "pricename": "LISTINO PROVA"

        }

    ],

    "barcodes": [ 

        {

            "barcode": "1234567891234",

            "packquantity": 1

        }

    ]

}

Delete

Le chiamate di eliminazione dei prodotti, possono essere fatte nella modalità standard DELETE o alternativamente con specifica chiamata POST, utilizzando anche il prefisso DEL come negli esempi delle tabelle di seguito.

 

Method

Url

DELETE

/api/products/{SessionCode}?idproduct={id}

 

Method

Url

Body Text

POST

/api/delproducts/{SessionCode}?idproduct={id}

 

POST

/api/delproducts

 

{

    "SessionCode": "KG..HT",

    "idproduct": "id"

}

Documenti

Tabella dei campi utilizzabili

 

Element

Description

Type

Max.

Size

Req’d

Read

Only

Filter

documents

idmovement

ID movimento

INTEGER

 

 

 

 

documenttype

Tipo documento. Da scontrino viene calcolato in automatico da CodiceMovimento (Vedi tabella 1)

STRING

3

 

 

 

idcompany

ID azienda

INTEGER

 

 

 

 

companycode

Codice azienda

STRING

20

 

 

 

companyname

Descrizione azienda

STRING

100

 

 

 

idmovementcode

ID codice movimento. Se valorizzato ha priorità rispetto a CodiceMovimento

INTEGER

 

 

 

 

movementcodename

Descrizione codice movimento. Ricerca il CodiceMovimento e compila in automatico i campi non valorizzati (campi segnati con "---" sono in autocompletamento)

STRING

 

 

 

 

receipttype

Tipo ricevuta. Utilizzando i CodiciMovimenti interni (Vedi tabella 3)

STRING

1

 

 

 

cussup

Cliente/Fornitore. C=Cliente; F=Fornitore

STRING

1

 

 

 

inout

Ingresso/Uscita. I=Ingresso; U=Uscita (autocompletamento)

STRING

1

 

 

 

depositdocument

Documento di acconto

BOOLEAN

 

 

 

 

movementdate

Data del movimento. Default data inserimento (Now)

DATETIME

 

 

 

 

year

Anno

INTEGER

 

 

 

 

month

Mese

INTEGER

 

 

 

 

week

Settimana

INTEGER

 

 

 

 

documentnumber

Numero documento. Numerazione (per scontrini numero scontrino)

INTEGER

 

 

 

 

localdocumentnumber

Numerodocumento locale.

INTEGER

 

 

 

 

documenttransactionnumber

Numero documento transazione. Numero documento formattato, per scontrini numero transazione

STRING

100

 

 

 

documentdate

Data documento. Default DataMovimento

DATETIME

 

 

 

 

origintype

Tipo provenienza. Ricevuta default=POS (Vedi tabella 2)

STRING

3

 

 

 

idorigin

ID provenienza. Default NumeroPos o NumeroAzienda

INTEGER

 

 

 

 

origincode

Codice provenienza

STRING

20

 

 

 

originname

Descrizione provenienza

STRING

250

 

 

 

origintaxcode

Codice Fiscale provenienza

STRING

16

 

 

 

originvatcode

Partita Iva provenienza

STRING

16

 

 

 

originaddress

Indirizzo provenienza

STRING

100

 

 

 

originzipcode

CAP provenienza

STRING

5

 

 

 

origincity

Città provenienza

STRING

20

 

 

 

origincountry

Provincia provenienza

STRING

2

 

 

 

originidnation

ID nazione provenienza

INTEGER

 

 

 

 

originnationcode

Codice nazione provenienza

STRING

2

 

 

 

originphonenumber

Numero di telefono provenienza

STRING

30

 

 

 

originfaxnumber

Numero di fax provenienza

STRING

30

 

 

 

destinationcode

Codice destinazione

STRING

20

 

 

 

destination

Destinazione

STRING

250

 

 

 

destinationaddress

Indirizzo destinazione

STRING

100

 

 

 

destinationzipcode

CAP destinazione

STRING

5

 

 

 

destinationcity

Città di destinazione

STRING

50

 

 

 

destinationcountry

Provincia di destinazione

STRING

2

 

 

 

destinationidnation

ID nazione destinazione

INTEGER

 

 

 

 

destinationnationcode

Codice nazione destinazione

STRING

2

 

 

 

destinationphonenumber

Numero di telefono di destinazione

STRING

30

 

 

 

destinationfaxnumber

Numero di fax di destinazione

STRING

30

 

 

 

taxabletotal

Totale imponibile

CURRENCY

 

 

 

 

vattotal

Totale IVA

CURRENCY

 

 

 

 

documenttotal

Totale documento

CURRENCY

 

 

 

 

nodiscountstotal

Totale senza sconti

CURRENCY

 

 

 

 

netdiscountstotal

Totale netto sconti

CURRENCY

 

 

 

 

discountstotal

Totale sconti applicati

CURRENCY

 

 

 

 

discountpercentagetotal

Percentuale sconto complessivo

DOUBLE

 

 

 

 

idpaymentmethod

ID metodo di pagamento

INTEGER

 

 

 

 

idpaymenttype

ID tipo di pagamento

INTEGER

 

 

 

 

notes

Note

STRING

1500

 

 

 

canceleddocument

Data eliminazione documento

DATETIME

 

 

 

 

idpos

ID POS

INTEGER

 

 

 

 

poscode

Codice POS

STRING

10

 

 

 

posname

Descrizione POS

STRING

20

 

 

idstore

Numero del GruppoPOS

INTEGER

 

 

 

storecode

Codice del GruppoPOS

STRING

10

 

 

storename

Descrizione del GruppoPOS

STRING

20

 

 

idcashier

ID operatore. Per vendita da POS

INTEGER

 

 

 

 

suspendedreceipt

Ricevuta sospesa. Per vendita da POS

BOOLEAN

 

 

 

 

pec

PEC

STRING

100

 

 

 

customertypereceipt

Tipo cliente ricevuta: CLI=Cliente; FID=Fidelity

STRING

3

 

 

 

idcustomerreceipt

ID cliente o ID tessera fideliity

INTEGER

 

 

 

customercodereceipt

Codice cliente o codice tessera fidelity

STRING

20

 

 

 

idcategorycustomerreceipt

ID categoria tessera fidelity

INTEGER

 

 

 

 

categorycodecustomerreceipt

Codice categoria tessera fidelity

STRING

20

 

 

 

categorycustomerreceipt

Categoria tessera fidelity

STRING

30

 

 

 

points

Punti fidelity complessivi del documento

INTEGER

 

 

 

extrapoints

Solo i punti extra derivati da promozioni

INTEGER

 

 

 

receiptpoints

Solo i punti generati dalla campagna premi

INTEGER

 

 

 

valuefid

Credito fidelity complessivo del documento

DOUBLE

 

 

 

extravaluefid

Solo credito extra derivato da promozioni

DOUBLE

 

 

 

receiptvaluefid

Solo credito generato dalla campagna premi

DOUBLE

 

 

 

iddiscardreason

ID causale di scarto

INTEGER

 

 

 

discardreason

Causale di scarto

STRING

50

 

 

 

cashmachineserialnumber

Matricola registratore telematico

STRING

15

 

 

 

documentobject

Oggetto del Movimento

STRING

150

 

 

 

documentrows

idrowmovement

ID riga movimento

INTEGER

 

 

 

 

documentdate

Data documento. Da testata

DATETIME

 

 

 

 

registrationdate

Data di registrazione. Now

DATETIME

 

 

 

 

qtytypemovement

Movimento a Quantità. -1=uscita; 1=entrata; 0=Non movimentato

INTEGER

 

 

 

 

valtypemovement

Movimento a Valore. -1=uscita; 1=entrata; 0=Non movimentato

INTEGER

 

 

 

 

insertmethod

Metodo di inserimento. Default=N (Vedi tabella 4)

STRING

1

 

 

 

rowtype

Tipo riga. Default=P (Vedi tabella 5)

STRING

1

 

 

 

productcode

Codice prodotto; codice lotto gratta e vinci

STRING

30

 

 

 

rowdescription

Descrizione riga. Nome Prodotto; Descrizione Sconto...

STRING

1000

 

 

 

producttype

Tipo prodotto. Default "PRD" se idProdotto>0, "REP" se idReparto>0 altrimenti "NIL" (Vedi tabella 6)

STRING

3

 

 

 

idproduct

ID prodotto

INTEGER

 

 

 

 

idbarcodeproduct

ID EAN prodotto

INTEGER

 

 

 

 

barcode

Codice EAN

STRING

13

 

 

 

qtycode

Codice quantità. Se non valorizzato è recuperato da CodiceMovimento

STRING

 

 

 

 

qtymovement

Quantità movimento. Quantità della riga

DOUBLE

 

 

 

 

vatpercentage

Valore percentuale IVA. Utilizzato per calcolare gli importi

DOUBLE

 

 

 

 

netprice

Prezzo netto

CURRENCY

 

 

 

 

vatprice

IVA prezzo

CURRENCY

 

 

 

 

price

Prezzo

CURRENCY

 

 

 

 

netpricelist

Prezzo netto listino

CURRENCY

 

 

 

 

vatpricelist

IVA prezzo listino

CURRENCY

 

 

 

 

pricelist

Prezzo di listino

CURRENCY

 

 

 

 

nettotalprice

Totale prezzo netto

CURRENCY

 

 

 

 

vattotalprice

Totale IVA prezzo

CURRENCY

 

 

 

 

totalprice

Totale prezzo

CURRENCY

 

 

 

 

netcost

Costo netto

CURRENCY

 

 

 

 

vatcost

IVA costo

CURRENCY

 

 

 

 

cost

Costo

CURRENCY

 

 

 

 

nettotalcost

Totale costo netto

CURRENCY

 

 

 

 

vattotalcost

Totale IVA costo

CURRENCY

 

 

 

 

totalcost

Totale costo

CURRENCY

 

 

 

 

canceledrow

Riga Annullata dal POS

DATETIME

 

 

 

 

closingdate

Riga non valorizzata. Annullata oppure chiusa da Inventario (Se annullata viene automaticamente valorizzata=RigaAnnullata)

DATETIME

 

 

 

 

tobeinvoiced

Da fatturare

SMALLINT

 

 

 

 

invoicedqty

Quantità fatturata

DOUBLE

 

 

 

 

iddepartment

ID reparto

INTEGER

 

 

 

 

idlist

ID listino. Default=0

INTEGER

 

 

 

 

idvat

ID IVA

INTEGER

 

 

 

 

vatcode

Codice IVA

STRING

10

 

 

 

vatname

Descrizione IVA

STRING

100

 

 

 

idstock

ID Magazzino

INTEGER

 

 

 

 

stockcode

Codice Magazzino

STRING

20

 

 

 

stnetchange

ST variazione netto

STRING

50

 

 

 

netpercentagechange

Variazione percentuale netto

DOUBLE

 

 

 

 

stchange

ST variazione

STRING

50

 

 

 

percentagechange

Variazione percentuale

DOUBLE

 

 

 

 

notes

Note

STRING

150

 

 

 

roworder

Ordine riga. Posizione della riga nel documento

INTEGER

 

 

 

 

idum

ID unità di misura

INTEGER

 

 

 

 

umcode

Codice unità di misura

STRING

10

 

 

 

lotnumber

Numero del lotto di produzione

STRING

50

 

 

 

packquantity

Quantità per confezione

FLOAT

 

 

 

 

vatmovements

idvat

ID IVA

INTEGER

 

 

 

 

vatcode

Codice IVA

STRING

10

 

 

 

vatname

Descrizione IVA

STRING

100

 

 

 

vatpercentage

Valore percentuale IVA

FLOAT

 

 

 

 

taxabletotal

Totale imponibile

CURRENCY

 

 

 

 

vattotal

Totale IVA

CURRENCY

 

 

 

 

payments

idpaymentmovement

ID pagamento movimento

INTEGER

 

 

 

 

paymentcode

Codice forma pagamento

STRING

20

 

 

 

paymenttype

Forma pagamento

STRING

50

 

 

 

totalpayment

Totale pagamento

CURRENCY

 

 

 

 

idpaymentmethod

ID forma di pagamento

INTEGER

 

 

 

 

 

Note

Tabella 1

 

DOCUMENT TYPES

DCC

Documento di consegna per cliente

DUC

Documento per cliente

DUF

Documento per fornitore

DUI

Documento interno

CAR

Carichi

RAF

Resa al fornitore

RDC

Resa da cliente

MTM

Movimenti tra magazzini

VEN

Ricevute di vendita

VEA

Ricevute di vendita annullate

VES

Ricevute di vendita sospese

MIV

Movimenti IVA

SCA

Scarico merce

RAP

Rapporti e stampe

ORD

Ordini

PRE

Preventivo

BIL

Bilancia

CHF

Chiusura Fiscale Cassa

ORS

Ordini sospesi

COM

Comanda Poldo

 

Tabella 2

 

ORIGIN TYPES

AZI

Azienda/Magazzino

AZP

Aziende Produttrici

DIS

Distributori

PRO

Professionisti esterni

DIP

Dipendenti

FOR

Fornitori di servizi

CLI

Clienti

MAG

Magazzino

POS

Vendita tramite POS

BIL

Vendita tramite Bilancia

GED

Gruppo editoriale

TEA

Docenti, insegnanti

TAV

Tavolo

 

Tabella 3

 

RECEIPT TYPES

S

Scontrino Fiscale

R

Ricevuta Fiscale Ristorazione

F

Fattura Ristorazione

N

Non Fiscale

P

Preconto

C

Documenti di Scarico da POS

 

Tabella 4

 

INSERT METHODS

M

Battuta Manuale (M, N, null)

S

Scanner

P

Tasto PLU

T

Terminalino

B

Bilancia

W

Web

D

Distributore automatico

G

Gestionale

I

Import

E

Esterno

O

Omaggio (automatico)

 

Tabella 5

 

ROW TYPES

P

Riga Prodotto o Reparto

R

Riga di Reso

D

Riga di Descrizione

S

Riga di Sconto Valore

V

Riga di Sconto Percentuale

A

Riga di Annullo stampata sullo scontrino

T

Riga di Storno stampata

O

Riga omaggio

C

Chiusura

 

Tabella 6

 

PRODUCT TYPES

PRD

Prodotto

REP

Reparto

GEV

Gratta e Vinci

CPN

Coupon

TOT

SubTotale

null

Non definito

 

Parametri

Per poter ricevere i nuovi documenti emessi è necessario valorizzare il parametro WebhookDocUrl nella sezione [midware] del file WService.ini, con l’url al quale l’applicativo dovrà inviarli.
I parametri WebhookDocBasicAuthUsername e WebhookDocBasicAuthPassword possono essere utilizzati qualora sia richiesto un Basic Auth con l'Url. 

 

Un altro parametro (facoltativo) sempre nella stessa sezione del file di configurazione è WebhookDocSuccessKey. Questo permette di poter verificare il "contenuto" della risposta con la stringa indicata che dovrà essere presente nella risposta stessa. 
Se omesso il parametro, viene presa per buona qualsiasi risposta che non sia "vuota".

 

Per default dopo la prima configurazione, la trasmissione partirà dall'ultimo documento emesso, dopodiché si metterà in attesa e trasmetterà tutti i nuovi documenti con un controllo ogni 5 secondi. 
Verrà quindi effettuato il salvataggio dell'ID dell'ultimo numero trasmesso nel file ini, sempre nella sezione midware al parametro WebhookDocLastIDMov

Nel caso si volesse trasmettere uno "storico" dei documenti precedenti sarà sufficiente modificare questo parametro inserendo l’ID dell’ultimo movimento precedente a quelli da ri-trasmettere.

 

Il parametro DocTypeExcluded. permette invece di escludere alcune tipologie di documenti inserendo, separati da virgola, i documenttype da non includere nella trasmissione.

Per default vengono esclusi i documenti VEA, BIL, SCA, COM e CAR della Tabella 1.

Read

Le chiamate di lettura dei documenti, possono essere fatte nella modalità standard GET o alternativamente con specifica chiamata POST, utilizzando anche il prefisso GET come negli esempi delle tabelle di seguito.

 

Method

Url

GET

/api/documents/{SessionCode}?iddocument={id}

 

Method

Url

Body Text

POST

/api/getdocuments/{SessionCode}?iddocument={id}

 

POST

/api/getdocuments

 

{

    "SessionCode": "KG..HT",

    "iddocument": "id"

}

Esempio Risposta

 

{

    "ResponseRequest": "documents",

    "SuccessStatus": true,

    "documents": [

        {

            "idmovement": 1000,

            "documenttype": "VEN",

            "idcompany": 1,

            "companycode": "01",

            "companyname": "AZIENDA 01",

            "idmovementcode": 0,

            "movementcodename": "VENDITA",

            "receipttype": "S",

            "cussup": "C",

            "inout": "U",

            "depositdocument": false,

            "movementdate": "2025-04-01T11:34:16.000+02:00",

            "year": 2025,

            "month": 4,

            "week": "202514",

            "documentnumber": 1,

            "localdocumentnumber": 1,

            "documenttransactionnumber": "2990000000000",

            "documentdate": "2025-04-01T11:34:16.000+02:00",

            "origintype": "POS",

            "idorigin": 1,

            "originname": "POS: 1. CASSA 1 GP1",

            "taxabletotal": 5.74,

            "vattotal": 1.26,

            "documenttotal": 7,

            "canceleddocument": "1899-12-30T00:00:00.000+01:00",

            "idpos": 1,

            "poscode": "1",

            "posname": "CASSA 1",

            "idstore": 1,

            "storecode": "1",

            "storename": "STORE 1",

            "idcashier": 1,

            "suspendedreceipt": false,

            "customertypereceipt": "FID",

            "idcustomerreceipt": 1000,

            "customercodereceipt": "CLIENTFID1",

            "idcategorycustomerreceipt": 1,

            "categorycodecustomerreceipt": "1",

            "categorycustomerreceipt": "CLIENTI GOLD",

            "iddiscardreason": 1,

            "discardreason": "ROTTO",

            "cashmachineserialnumber": "00ABC000000",

            "documentrows": [

                {

                    "idrowmovement": 10000,

                    "documentdate": "2025-04-01T11:34:16.000+02:00",

                    "registrationdate": "2025-04-01T11:34:16.000+02:00",

                    "qtytypemovement": -1,

                    "valtypemovement": 1,

                    "insertmethod": "P",

                    "rowtype": "P",

                    "productcode": "000001",

                    "rowdescription": "PRODOTTO PROVA",

                    "producttype": "PRD",

                    "idproduct": 1,

                    "idbarcodeproduct": 1,

                    "barcode": "2500000000000",

                    "qtycode": "VENDUTA",

                    "qtymovement": 1,

                    "vatpercentage": 22,

                    "netprice": 5.7377,

                    "vatprice": 1.2623,

                    "price": 7,

                    "netpricelist": 5.7377,

                    "vatpricelist": 1.2623,

                    "pricelist": 7,

                    "nettotalprice": 5.7377,

                    "vattotalprice": 1.2623,

                    "totalprice": 7,

                    "netcost": 0.82,

                    "vatcost": 0.1804,

                    "cost": 1.0004,

                    "nettotalcost": 0.82,

                    "vattotalcost": 0.1804,

                    "totalcost": 1.0004,

                    "iddepartment": 1,

                    "idlist": 0,

                    "idvat": 1,

                    "vatcode": "22",

                    "vatname": "IVA 22%",

                    "idstock": 1,

                    "stockcode": "MAG 1",

                    "roworder": 0,

                    "idum": 1,

                    "umcode": "PZ",

                    "lotnumber": "9876",

                    "packquantity": 1.00

                }

            ],

            "vatmovements": [

                {

                    "idvat": 1,

                    "vatcode": "22",

                    "vatname": "IVA 22%",

                    "vatpercentage": 22,

                    "taxabletotal": 5.74,

                    "vattotal": 1.26

                }

            ],

            "payments": [

                {

                    "idpaymentmovement": 1,

                    "paymentcode": "1",

                    "paymenttype": "CONTANTI",

                    "totalpayment": 7,

                    "idpaymentmethod": 1

                }

            ]

        }

    ]

}

Write

Le chiamate di inserimento dei documenti, possono essere fatte con specifica chiamata POST come da esempio della tabella di seguito.

 

Method

POST

Url

/api/setdocument

Body Text

Esempio 1 - CARICO

{

    "documenttype": "CAR",

    "companycode": "AZIENDA",

    "movementcodename": "FATFOR",

    "movementdate": "2024-11-22T00:00:00.000+01:00",

    "documenttransactionnumber": "12343",

    "documentdate": "2024-11-22T00:00:00.000+01:00",

    "origintype": "FOR",

    "originname": "FORNITORE PROVA",

    "vatcode": "02456789013",

    "documentrows": [

        {

            "rowdescription": "PRODOTTO PROVA",

            "barcode": "2500000000000",

            "qtycode": "CARICO",

            "qtymovement": 1,

            "vatcode": "22",

            "vatpercentage": 22,

            "netprice": 6,

            "stockcode": "MAG1"

        },

        {

            "rowdescription": "SECONDO PRODOTTO PROVA",

            "barcode": "2500000000011",

            "qtycode": "CARICO",

            "qtymovement": 2,

            "vatcode": "22",

            "vatpercentage": 22,

            "netprice": 4.5,

            "stockcode": "MAG1"

        }

    ]

}

Body Text

Esempio 2 - SCARICO

{

    "documenttype": "SCA",

    "companycode": "AZIENDA",

    "documenttransactionnumber": "123",

    "documentdate": "2025-09-12T00:00:00.000+02:00",

    "discardreason": "PRODOTTO SCADUTO",

    "documentrows": [

        {

            "rowdescription": "ARTICOLO ESEMPIO",

            "barcode": "2500000002403",

            "qtycode": "SCARICO",

            "qtymovement": 1,

            "stockcode": "MAG1"

        }

    ]

}

Prepagati

Tabella dei campi utilizzabili

 

Element

Description

Type

Max.

Size

Req’d

Read

Only

PREPAID

idprepaid

ID prepagato

INTEGER

 

 

 

prepaidcode

Codice prepagato

STRING

30

 

 

prepaidname

Descrizione prepagato

STRING

100

 

 

validfrom

Valido dal

DATETIME

 

 

 

validto

Valido al

DATETIME

 

 

 

blacklistdate

Data inserimento in BlackList

DATETIME

 

 

 

prepaidbalance

Saldo prepagato

CURRENCY

 

 

 

 

Note

 

 E' possibile modificare le date di validità ed impostare, in caso di nuova tessera, un credito iniziale. 

Write

Le chiamate di inserimento (o modifica) di una tessera prepagata, possono essere fatte con specifica chiamata POST come da esempio della tabella di seguito.

 

Method

POST

Url

/api/setprepaid

Body Text

 

{

    "SessionCode": "KG..HT",

    "prepaidcode": "PREPAID01",

    "prepaidname": "PREPID TEST",

    "validfrom": "2025-09-23",

    "validto": "2026-09-22",

    "prepaidbalance": 500

}

Esempio Risposta

 

{

    "ResponseRequest": "setprepaid",

    "SuccessStatus": true,

    "idprepaid": 3,

    "prepaidcode": "PREPAID01",

    "prepaidname": "PREPID TEST",

    "validfrom": "2025-09-23T00:00:00.000+02:00",

    "validto": "2026-09-22T00:00:00.000+02:00",

    "prepaidbalance": 500

}