Questa web api consente di inviare i dati del carrello del sito e ricevere il pdf della fattura generata su mago
Metodi rest: La web api è stata realizzata in ambiente ASP NET Core ed espone un metodo POST a cui è possibile inviare (nel body della richiesta) un struttura Json (envelope fattura) in cui sono presenti tutti i dati necessari alla generazione del documento. Come risposta alla chiamata verrà restituito un envelope di risposta in cui sarà specificato l'esito , gli eventuali avvisi o errori e il byte array contenente il la fattura in formato pdf
Envelope fattura: la struttura json da inviare nel body della chiamata post
{ "idEnvelope": 0, "recordCliente": { "custSupp": "2aq4a", "companyName": "Cliente 2aq4a", "companyNameUnicode": "吴丽平company name unicode 2aq4a", "taxIdNumber": "PI2aq4a", "fiscalCode": "CF2aq4a", "address": "inidirizzo cliente", "addressUnicode": "inidirizzo cliente Unicode", "zipCode": "90100", "zipCodeUnicode": "吴丽平 ZIP", "city": "citta ", "cityUnicode": " 吴丽平 citta unicode", "county": "PA", "country": "paese ", "email": "cliente2aq4a@email.it", "isoCountryCode": "IT", "naturalPerson": true }, "recordDestinazione": { "shippingDestinationCompanyName": "Company name destinazione", "shippingDestinationAddress": "Company name destinazione inidirizzo", "shippingDestinationZipCode": "ZIP dest", "shippingDestinationCity": "citta destinazione", "shippingDestinationNation": "nazione destinazione", "shippingDestinationCounty": "PA", "shippingCharges": "20", "shippingChargesIsAuto": false, "shippingChargesTaxCode": "22", "departureDate": "2018-01-30", "departureHr": "10", "departureMn": "30", "noOfPacks": "1", "grossWeight": "100", "package": "Cartoni", "codeCarrier": "TNT", "trackingNumber": "track 100", "customDeclaration": "Custom Declaration", "material": "Material", "stampaWashington": false }, "recordFattura": { "idDoc":0 "documentDate": "2018-01-30", "payment": "001", "paymentDescription": "", "azioneComunicazioneIva": "", "currency": "EUR", "accTpl": "FE", "righeFattura": [ { "line": 0, "lineType": 3538947, "item": "260489.028.042", "description": "riga 1 kjahs kjhs kajhs kajsh as", "uoM": "NR", "qty": 1, "notes": "100 AF", "unitValue": 150.33, "discountFormula": "", "discountAmount": 0, "taxCode": "22" }, { "line": 1, "lineType": 3538947, "item": "260489.028.043", "description": "riga due kjahs kjhs kajhs kajsh as", "uoM": "NR", "qty": 1, "notes": "100 AF", "unitValue": 150, "discountFormula": "", "discountAmount": 0, "taxCode": "22" }, { "line": 2, "lineType": 3538944, "item": "", "description": "riga Nota FFGGGGGGGFG _ FGHGFHGFHG-FGHGFHGFHG", "uoM": "NR", "qty": 1, "notes": "", "unitValue": 0, "discountFormula": "", "discountAmount": 0, "taxCode": "" } ], "righeNote": [ { "categoria": "001", "rigaNota": 1, "rigaCorpo": 0, "nota": "contenuti prima riga nota categoria 001" }, { "categoria": "001", "rigaNota": 2, "rigaCorpo": 0, "nota": "contenuti seconda riga nota categoria 001" }, { "categoria": "002", "rigaNota": 1, "rigaCorpo": 1, "nota": "contenuti prima riga nota categoria 002 sulla riga nr 1 della fattura" }, { "categoria": "002", "rigaNota": 2, "rigaCorpo": 1, "nota": "contenuti seconda riga nota categoria 002 sulla riga nr 1 della fattura" } ], "yourReference": "" }, "recordSpese": { "amountAllowance": 0, "discounts": 0, "shippingCharges": null, "departureHr": null, "departureMn": null, "grossWeight": null }, "recordNotaCredito": { "dataFattura": "2000-12-31", "nrFattura": "" } }
La struttura contiene i dati del cliente (tramite un id univoco è gestito il richiamo o l'inserimento del nuovo cliente), il corpo fattura, i dati di destinazione (sono tutti campi di tipo unicode e verranno memorizzati in un record di una tabella aggiuntiva a mago relazionata con la fattura generata), le righe note (le note sono gestite a categorie note di testa/piede e note di corpo relative al rigo). E' possibile , inoltre, emettere Note Credito semplicemente specificando nel campo "accTpl": "NE" nel record fattura e la data e in nr di fattura emessa a cui la nota credito fa riferimento. E' prevista anche la possibilita di variare la fattura semplicemente inserendo nell'envelope l'id della fattura da modificare
Envelope risposta: la struttura json di risposta
{ "invoiceEnvelopRequest": { "idEnvelope": "0", "recordCliente": { "custSupp": "7878", "companyName": "Cliente 1z2hv", "companyNameUnicode": "吴丽平company name unicode 1z2hv", "taxIdNumber": "PI1z2hv", "fiscalCode": "CF1z2hv", "address": "", "addressUnicode": "", "zipCode": "90100", "zipCodeUnicode": "吴丽平 ZIP", "city": "citta ", "cityUnicode": " 吴丽平 citta unicode", "county": "PA", "country": "paese ", "email": "cliente1z2hv@email.it", "isoCountryCode": "IT", "naturalPerson": true }, "recordDestinazione": { "shippingDestinationCompanyName": "Company name destinazione", "shippingDestinationAddress": "Company name destinazione inidirizzo", "shippingDestinationZipCode": "ZIP dest", "shippingDestinationCity": "citta destinazione", "shippingDestinationNation": "nazione destinazione", "shippingDestinationCounty": "PA", "shippingCharges": 5, "shippingChargesIsAuto": false, "shippingChargesTaxCode": "22", "departureDate": "2017-10-24T00:00:00+02:00", "departureHr": 10, "departureMn": 30, "noOfPacks": 0, "grossWeight": 0, "package": "", "codeCarrier": "tnt", "trackingNumber": "", "customDeclaration": "", "material": "", "stampaWashington": false }, "recordFattura": { "documentDate": "2017-10-24T00:00:00+02:00", "payment": "001", "paymentDescription": "", "azioneComunicazioneIva": "", "currency": "EUR", "accTpl": "FE", "yourReference": "aaa", "righeFattura": [ { "line": 0, "lineType": 3538947, "item": "260489.028.042", "description": "riga 1 kjahs kjhs kajhs kajsh as", "uoM": "NR", "qty": "1", "notes": "100 AF", "unitValue": 150.33, "discountFormula": "", "discountAmount": 0, "taxCode": "22" }, { "line": 1, "lineType": 3538947, "item": "260489.028.043", "description": "riga due kjahs kjhs kajhs kajsh as", "uoM": "NR", "qty": "1", "notes": "100 AF", "unitValue": 150, "discountFormula": "", "discountAmount": 0, "taxCode": "22" } ], , "righeNote": [ { "categoria": "001", "rigaNota": 1, "rigaCorpo": 0, "nota": "contenuti prima riga nota categoria 001" }, { "categoria": "001", "rigaNota": 2, "rigaCorpo": 0, "nota": "contenuti seconda riga nota categoria 001" }, { "categoria": "002", "rigaNota": 1, "rigaCorpo": 1, "nota": "contenuti prima riga nota categoria 002 sulla riga nr 1 della fattura" }, { "categoria": "002", "rigaNota": 2, "rigaCorpo": 1, "nota": "contenuti seconda riga nota categoria 002 sulla riga nr 1 della fattura" } ] }, "recordSpese": { "amountAllowance": 0, "discounts": 0 } }, "envelopeErrors": [], "envelopAvvisi": [ { "avvisoInRecord": "Dati Cliente", "avvisoContent": "Cliente Inserito Correttamente! - 21029 - company name unicode 1z2hv" }, { "avvisoInRecord": "Fattura", "avvisoContent": "Fattura Nr. 004765 - Creata Correttamente!" } ], "pdfString": "JVBERi0xLjQKJdP0zOEKMSAwIG9.......", "pdfFileName": "2017_004765", "idDocGenerato": 279, "pdfByteArray": null }
La struttura contiene i dati della richiesta inviata, gli eventuali errori che non hanno consentito la generazione della fattura, gli eventuali avvisi , l'id del documento generato e il byte array del report fattura in pdf.
Lasciaci un messaggio, saremo lieti di ricontattarti al più presto per ulteriori chiarimenti
Contact With Me