Documentazione AR APIv2 1.0.8 Help

Rilascio v2

badge Status-ACTIVE

La chiamata di rilascio CardReleased permette, indicando i parametri dell’Utente, codice del Servizio/Prodotto richiesto e parametri relativi a card e vendita, di:

  • Rilasciare la Card specificata e associarla all’Utente indicato;

    • (Opzionale) Rilasciare Card specifica per codice di attivazione, se presente;

  • Registrare la Vendita della Card con le specifiche indicate in request;

  • (Opzionale) Rilasciare le Licenze Software eventualmente associate alla Card;

  • (Opzionale) Creare o aggiornare l’Utente indicato;

    • Allineare DB del socio, se viene indicato l’Identificativo esterno dell’utenza;

Richiede in ingresso:

  • Codice Prodotto;

  • Parametri relativi all’Utente;

  • Parametri relativi a Card e Vendita;

Restituisce:

  • Codice della Card appena rilasciata;

  • Email dell’Utente a cui è associata la Card;

  • (Opzionale) Lista di licenze Software rilasciate, o info sullo stato del rilascio (in caso di software multipli o errore);

  • Oppure, se non va a buon fine, la descrizione dell’errore riscontrato;

CardCode:

Il rilascio della Card, in base alla presenza del parametro, verrà gestito con la seguente logica:

  • CardCode non presente: verrà rilasciata la prima card disponibile, per il tipo di servizio richiesto;

  • CardCode presente: verrà rilasciata la card associata al codice di attivazione specificato;

Softwares:

Nel caso in cui siano associati 1 o più Softwares alla Card rilasciata, verrà gestita con la seguente logica il rilascio delle licenze software designate:

  • Software singolo per gruppo software: rilascio immediato della licenza;

  • Software multiplo per gruppo software: notifica che ci indica di effettuare chiamata di selezione software per la Card;

Utente esterno:

Nel caso in cui venga specificato un identificativo esterno Utente, per allineamento con base dati del socio, verrà gestita con la seguente logica la creazione/aggiornamento dell’Utente:

  • Corrispondenza Id trovata: aggiornamento eventuale dati (email, telefono, etc.);

  • Corrispondenza Id non trovata, corrispondenza mail trovata: viene associato l’identificativo esterno all’Utenza, per la mail indicata, e successivamente vengono aggiornati i dati Utente;

  • Nessuna corrispondenza trovata: viene creato un nuovo Utente con tutti i dati specificati;

  • Id esterno non specificato: nessun allineamento dati, ricerca utenza per email;

Chiave

Valore

Indirizzo Test

https://test-apiv2.smiletech.it/APIv2/CardReleaseds/ReleaseCard/{codeProduct}

Indirizzo Prod

https://apiv2.smiletech.it/APIv2/CardReleaseds/ReleaseCard/{codeProduct}

Metodo

POST

Success Response

200 (Success)

Error Response

400 (Bad Request)
401 (Unauthorized)
500(Internal Server Error)

Di seguito la struttura dell’Header contenente:

Header

{ "authorization": "Bearer -indicare-qui-Token-fornito-" }

Il codice prodotto va inserito come parametro nell’URL andando a sostituire {codeProduct} all’interno dell’indirizzo.

Di seguito la struttura del body contenente i valori da inserire all’interno della richiesta:

Request body

{ "cardSerial": "[string]{seriale retro card}", "serviceType": "[string]{tipo servizio venduto}", "sellState": "[string]{stato vendita} OBBLIGATORIO", "dateSell": "[date]{data vendita} OBBLIGATORIO", "shopCode": "[string]{codice negozio} OBBLIGATORIO", "nrDocument": "[string]{numero bolletta} OBBLIGATORIO", "dateDocument": "[date]{data documento} OBBLIGATORIO", "cardCode": "[string]{codice attivazione Card}", "serviceCode": "[string]{codice servizio} OBBLIGATORIO", "serviceDesc": "[string]{descrizione servizio}", "serviceExpire": "{scadenza servizio}", "servicePrice": [float]{prezzo servizio} OBBLIGATORIO, "articleInternalCode": "[string]{codice interno servizio}", "articleDesc": "[string]{descrizione articolo}", "articleOrigin": "[string]{origine articolo}", "articleType": "[string]{tipologia articolo}", "articleBrand": "[string]{marca articolo}", "articleModel": "[string]{modello articolo}", "articleImei": "[string]{IMEI articolo}", "codeFidelity": "[string]{codice fidelity}", "returnDate": "[date]{data reso}", "returnNotes": "[date]{note reso}", "operatorCode": "[string]{codice operatore}", "isRenewal": [bool]{rinnovo (false/true), settare a false}, "cardSerialOld": "[string]{vecchio seriale card (se rinnovo), non utilizzare}", "user": { "name": "[string]{nome dell’Utente}", "surname": "[string]{cognome dell’Utente}", "email": "[string]{email univoca e identificativa dell’Utente}", "phoneNumber": "[string]{numero di telefono dell’Utente}", "externalId": "[string][opzionale]{identificativo esterno dell’Utente}" } }

Di seguito la struttura della response contenente i valori di ritorno dal sistema:

Response body

{ "cardReleased": { "cardCode": "[string]{codice univoco Card, necessario per usufruire del servizio e dei prodotti associati}", "email": "[string]{email del cliente a cui è associata la Card}", "dateActived": "[DateTime] {data/momento di attivazione e validità della Card}", "dateExpired": "[DateTime] {data/momento di scadenza della Card}" }, "softwares": [ { "name": "[string]{nome del software}", "code": "[string]{codice identificativo del prodotto}", "license": "[string]{licenza di utilizzo, destinata al cliente finale}", "downloadLink": "[string]{link di download del Software}", "group": "[string]{nome del gruppo software di appartenenza}", "resultCode": [int]{codice stato operazione di rilascio (200, 400, 500 etc.)}, "resultMessage": "[string]{messaggio esplicativo del risultato dell’operazione di rilascio}" } ] }

Un esempio di chiamata con dati verosimili:

https://test-apiv2.smiletech.it/APIv2/CardReleaseds/ReleaseCard/SIRTIE12IPHONE

Header

{ "authorization": "Bearer NTNv7j0TuYARvmNMmWXo6fKvM4o6nv/aUi9ryX38ZH+L1bkrnD1ObOQ8Jdav" }

Request body

{ "cardSerial": "210000008", "serviceType": "SIRTIE12IPHONE", "sellState": "N", "dateSell": "2023-06-11T12:00:00.000", "shopCode": "470PD", "nrDocument": "123123123123", "dateDocument": "2023-06-11T12:58:00.000", "cardCode": "234HBS3H5PKJD67S", "serviceCode": "SIRTIE12IPHONE", "serviceDesc": "SERVIZIO IPHONE", "serviceExpire": null, "servicePrice": 39.9, "articleInternalCode": "SM-0101010", "articleDesc": "IPHONE X", "articleOrigin": "APPLE", "articleType": "SMARTPHONE", "articleBrand": "APPLE", "articleModel": "AP-1209889", "articleImei": "123123123123123123", "codeFidelity": "000000000001", "returnDate": null, "returnNotes": "", "operatorCode": "12345", "isRenewal": false, "cardSerialOld": "", "user": { "name": "Marco", "surname": "Rossi", "email": "marco@mail.it", "phoneNumber": "333133313", "externalId": "110" } }

In caso di Successo il sistema ritorna il seguente modello JSON:

Response body

{ "cardReleased": { "cardCode": "006D25ADB1454157", "email": "marco@mail.it", "dateActived": "2023-10-26T19:33:06Z", "dateExpired": "2024-10-26T19:33:06Z" }, "softwares": [ { "name": "Kaspersky Internet Security", "code": "KIS", "license": "AAAA1-BB2BB-3CCCC-D4DDD", "downloadLink": "oaservice.it/internetsecurity.exe", "group": "Antivirus", "resultCode": 200, "resultMessage": "Licenza rilasciata." } ] }

In caso di Errore il sistema ritorna il seguente modello JSON:

Response

Status: 400 Bad Request

{ "error": "Campi obbligatori (CodeProduct, ServicePrice) non valorizzati." }

Errori Riscontrabili

Di seguito la lista che indica gli errori che possono essere riscontrati:

Codice

Descrizione

400
(BadRequest)

I dati in ingresso non sono corretti o non sono correttamente formattati. Viene restituita la descrizione dell’errore nel dettaglio.

401
(Unauthorized)

Il codice Token fornito non è valido. L’autenticazione non è andata a buon fine.

500
(Internal Server Error)

Il server ha riscontrato un errore inaspettato, generalmente esula dal tipo di request e si verifica per problemi assoggettabili al sistema.

17 novembre 2025