Documentazione API

Quoparts mette a disposizione un servizio REST API, per integrazioni da sistemi esterni.
Questa documentazione fornisce informazioni sugli endpoint disponibili e su come interagire con essi.

API Endpoint Base

{BASE_URL}/ws_quoparts.php

1. Autenticazione

L'API Login consente di autenticarsi al sistema QuoParts e ottenere un token necessario per le chiamate successive.

GET {BASE_URL}/ws_quoparts.php?login=&username={USER}&password={PWD}

Parametri URL

ParametroTipoObbligatorioDescrizione
loginstringNome metodo.
usernamestringUsername per l'autenticazione.
passwordstringPassword per l'autenticazione.

Esempio cURL



curl -X GET "{BASE_URL}/ws_quoparts.php?login=&username=CODICE_UTENTE&password=PASSWORD_UTENTE"

Risposta

Struttura della risposta

La risposta contiene un oggetto JSON con le informazioni di autenticazione.

{
  "errorCode": "string",
  "error": "string",
  "data": [
    {
      "TOKEN": "string"
    }
  ]
}

Campi Output

CampoDescrizioneTipoNote
errorCodeCodice errore (0 se successo, altro valore se errore)stringSempre presente
errorDescrizione errore (vuoto se successo)stringSempre presente
dataArray contenente il token di autenticazionearraySempre presente
data[].TOKENToken di autenticazionestringSolo se successo

Esempio Risposta (Successo)

{
  "errorCode": "0",
  "error": "",
  "data": [
    {
      "TOKEN": "40919716769452007349723.39576135"
    }
  ]
}

Esempio Risposta (Errore)

{
  "errorCode": "101",
  "error": "Utente non Accreditato",
  "data": []
}

Note Tecniche

  • Il token restituito deve essere utilizzato per tutte le richieste successive.
  • In caso di token scaduto, è necessario effettuare nuovamente il login.

2. Import Clienti

L'API consente di trasmettere anagrafiche cliente al sistema QuoParts e generare le relative credenziali.

POST {BASE_URL}/ws_quoparts.php?importCli=&token={TOKEN}

Parametri URL

ParametroTipoObbligatorioDescrizione
importClistringNome metodo.
tokenstringToken di autenticazione ottenuto tramite API Login.

Struttura Payload (JSON)

Inviare un oggetto JSON con proprietà data contenente un array di clienti.

Struttura del payload

{
  "data": [
    {
      "DES_NOM": "string",
      "DES_IND": "string",
      "DES_CTA": "string",
      "COD_PRN": "string",
      "COD_CAP": "string",
      "COD_EML": "string",
      "COD_PTA_IVA": "string",
      "FLG_ATV": "string",
      "COD_CLI_ERP": "string"
    }
  ]
}

Campi Input

CampoTipoObbligatorioDescrizione
DES_NOMstringRagione Sociale.
DES_INDstringNoIndirizzo.
DES_CTAstringNoCittà.
COD_PRNstringNoProvincia (es: MI).
COD_CAPstringNoCAP.
COD_EMLstringNoEmail.
COD_PTA_IVAstringPartita IVA.
FLG_ATVstringNoStato (0=non attivo; 1=attivo). Default: 1.
COD_CLI_ERPstringCodice Cliente Gestionale univoco.

Esempio cURL

curl -X POST "{BASE_URL}/ws_quoparts.php?importCli=&token=TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "data": [
      {
        "DES_NOM": "Rossi S.r.l.",
        "DES_IND": "Via Roma 123",
        "DES_CTA": "Milano",
        "COD_PRN": "MI",
        "COD_CAP": "20121",
        "COD_EML": "info@rossisrl.it",
        "COD_PTA_IVA": "12345678901",
        "FLG_ATV": "1",
        "COD_CLI_ERP": "CLI001"
      }
    ]
  }'

Risposta

Struttura della risposta

La risposta contiene un array di oggetti con le informazioni per ciascun cliente processato, correlate al COD_CLI_ERP trasmesso.

{
  "errorCode": "string",
  "error": "string",
  "data": [
    {
      "errorCode": "string",
      "error": "string",
      "COD_CLI_ERP": "string",
      "COD_CLI": "string",
      "COD_USR": "string",
      "COD_PWD": "string"
    }
  ]
}

Campi Output

CampoDescrizioneTipoNote
errorCodeCodice errorestringSempre presente. 0 se successo
errorDescrizione errorestringSempre presente. Vuoto se successo
dataArray contenente i dati del cliente e relative credenzialiarraySempre presente. Vuoto se errore
data[].errorCodeCodice errore creazione clientestringSempre presente. 0 se successo
data[].errorDescrizione errore creazione clientestringSempre presente. Vuoto se successo
data[].COD_CLI_ERPCodice Cliente Gestionale (ricevuto in input)stringSempre presente
data[].COD_CLICodice Cliente QuoParts generato/associatostringSolo se successo
data[].COD_USRUsername QuoParts generatostringSolo se successo
data[].COD_PWDPassword QuoParts generatastringSolo se successo

Esempio Risposta (Successo)

{
  "errorCode": "0",
  "error": "",
  "data": [
    {
      "errorCode": "0",
      "error": "",
      "COD_CLI_ERP": "CLI001",
      "COD_CLI": "000015",
      "COD_USR": "M00015",
      "COD_PWD": "O8HMER"
    }
  ]
}

Esempio Risposta (Errore)

{
  "errorCode": "100",
  "error": "Richiesta errata",
  "data": []
}

Note Tecniche

  • Il campo FLG_ATV, se omesso, viene automaticamente impostato a 1 (attivo).

3. Import Preventivi

Consente di trasmettere richieste di preventivo al portale QuoParts.

POST {BASE_URL}/ws_quoparts.php?importPvt=&token={TOKEN}

Parametri URL

ParametroTipoObbligatorioDescrizione
importPvtstringNome metodo.
tokenstringToken di autenticazione ottenuto tramite API Login.

Struttura Payload (JSON)

Il body deve contenere un oggetto data diviso in testata e articoli.

Struttura del payload

{
  "data": {
    "testata": {
      "COD_CLI": "string",
      "COD_CLI_ERP": "string",
      "COD_TGA": "string",
      "COD_TLO": "string",
      "DES_VCL": "string",
      "DES_NOM_SPD": "string",
      "DES_IND_SPD": "string",
      "DES_CTA_SPD": "string",
      "COD_PRN_SPD": "string",
      "COD_CAP_SPD": "string"
    },
    "articoli": [
      {
        "DES_RGR": "string",
        "COD_ART_PVT": "string",
        "DES_ART_PVT": "string",
        "IMP_LST_PVT": number,
        "QTA_DET_PVT": number
      }
    ]
  }
}

Campi Input Testata

I seguenti campi rappresentano l'intestazione del preventivo e sono presenti una sola volta per richiesta.

CampoTipoObbligatorioDescrizione
COD_CLIstringSÌ*Codice Cliente QuoParts. *Alternativo a COD_CLI_ERP
COD_CLI_ERPstringSÌ*Codice Cliente Gestionale. *Alternativo a COD_CLI
COD_TGAstringTarga veicolo.
DES_VCLstringDescrizione Veicolo.
COD_TLOstringNoTelaio.
DES_NOM_SPDstringNoCliente di spedizione.
DES_IND_SPDstringNoIndirizzo di spedizione.
DES_CTA_SPDstringNoCittà di spedizione.
COD_PRN_SPDstringNoProvincia di spedizione. (es: MI, RM)
COD_CAP_SPDstringNoCAP di spedizione.

Campi Articoli (Array)

L'array articoli contiene la lista degli articoli da preventivare.

CampoTipoObbligatorioDescrizione
DES_RGRstringDescrizione generica dell'articolo.
COD_ART_PVTstringCodice OE articolo.
DES_ART_PVTstringNoDescrizione specifica dell'articolo.
IMP_LST_PVTnumberNoImporto Listino OE.
QTA_DET_PVTnumberNoQuantità.

Esempio cURL

curl -X POST "{BASE_URL}/ws_quoparts.php?importPvt=&token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "testata": {
        "COD_CLI": "000015",
        "COD_CLI_ERP": "CLI001",
        "COD_TGA": "TE001ST",
        "DES_VCL": "FORD B-Max 1.6 Ti-VCT Benzina"
      },
      "articoli": [
        {
          "DES_RGR": "Filtro olio",
          "COD_ART_PVT": "1883037",
          "DES_ART_PVT": "Filtro olio motore",
          "IMP_LST_PVT": 14.57,
          "QTA_DET_PVT": 1
        }
      ]
    }
  }'

Risposta

Struttura della risposta

La risposta contiene un oggetto JSON con l'esito dell'operazione.

{
  "errorCode": "string",
  "error": "string",
  "data": [
    {
      "COD_DOC": "string"
    }  
  ]
}

Campi Output

CampoDescrizioneTipoObbligatorio
errorCodeCodice errore (0 se successo, altro valore se errore)stringSempre presente
errorDescrizione errore (vuoto se successo)stringSempre presente
dataArray contenente i dati del preventivo creatoarraySempre presente. Vuoto se errore
data[].COD_DOCCodice Documento/Preventivo QuoParts generatostringSolo se successo

Esempio Risposta (Successo)

{
  "errorCode": "0",
  "error": "",
  "data": [
    {
      "COD_DOC": "000001"
    }
  ]
}

Esempio Risposta (Errore)

{
  "errorCode": "107",
  "error": "Errore durante la creazione del preventivo",
  "data": []
}

Note Tecniche

  • È necessario valorizzare almeno uno tra COD_CLI e COD_CLI_ERP per identificare il cliente.
  • Se COD_CLI e COD_CLI_ERP sono entrambi valorizzati, il sistema utilizza prioritariamente COD_CLI.
  • L'array articoli deve contenere almeno un elemento.
  • I campi numerici (IMP_LST_PVT, QTA_DET_PVT) devono essere in formato numerico.