# 3. API di Memorizzazione di una Receipt
Il sistema di memorizzazione delle Receipt può essere utilizzato dal licenziatario per caricare in modo sincrono le prove di acquisto e contestualmente valorizzare gli attributi del Customer che ha eseguito l'acquisto. La sequenza delle operazioni è la seguente:
La chiamata da eseguire è
POST /receipt
i cui dati sono rappresentati in una struttura JSON come la seguente:
{
"receiptNumber": "STRING",
"shopCode": "STRING",
"buyingDate": "yyyyMMdd",
"source": "MERCHANT",
"cardNumber": "STRING",
"cardType": "STRING",
"validEmail": "STRING",
"description": "TEXT",
"customer": {
"user": {
"login": "STRING",
"legalName": "TEXT",
"address": {
"street": "STRING",
"postCode": "[0-9]+",
"city": "STRING"
}
}
},
"purchasedProducts": [
{
"product": {
"eanCode": "STRING"
},
"quantity": "NUMBER",
"quantityUnit": "STRING"
},
...
]
}
Per esempio:
curl 'http://localhost:8081/api/receipts' -H 'Content-Type: application/json;charset=UTF-8' --data-binary '{"receiptNumber":"111","description":"Documento memorizzato da HASCA","buyingDate":"2019-04-08","source":"MERCHANT","customer":{"legalName":"Luca Orlandi","user":{"login":"luca.orlandi@example.com"},"addresses":[{"street":"Via Trieste 63","locality":null,"city":"San Giuliano Milanese","region":null,"postcode":"20098","streetNumber":null,"country":{"code":"IT"}}]},"shop":{"code":"NEXI-HASCA-0211181617-N"}}'
La chiamata torna un codice http che indica l'eventuale successo della chiamata. In particolare lo stato 409 Conflict
si presenta a seguito della richiesta di memorizzazione (POST) quando una ricevuta quando nel sistema è già presente un documento proveniente dal medesimo negozio, emesso nella medesima data con lo stesso numero di ricevuta e codice di cassa.
La risposta quando la memorizzazione va a buon fine è costituita da una struttura JSON che rappresenta il documento di acquisto; in particolare sono valorizzati gli identificativi delle entità memorizzate.
Per esempio:
{
"id":53422,
"profile":null,
"receiptNumber":"111",
"description":"Documento memorizzato da HASCA",
"creationDate":"2019-04-08",
"buyingDate":"2019-04-08",
"source":"MERCHANT",
"warnings":[
"customer",
"contact",
"shop.shopSignboard",
"shop.merchant",
"card",
"ecommerce",
"purchasedProducts",
"receiptFiles",
"counterCode",
"paymentType",
"receiptType",
"transactionAmount",
"currency"
],
"shopId":2555,
"unidentifiedUser":{
"id":3697,
"email":"luca.orlandi@example.com",
"legalName":"Luca Orlandi",
"address":{
"id":13628,
"street":"Via Trieste 63",
"locality":null,
"city":"San Giuliano Milanese",
"region":null,
"postcode":"20098",
"streetNumber":null,
"country":{
"code":"IT",
"name":"Italy"
}
}
},
"contact":null,
"shop":{
}
}