OB1 / Docs
ARCHIVIO · VERSIONE 1.1

Specifica Trading Partner JSON v1.1

Release storica v1.1. Per nuove integrazioni consulta la specifica corrente v1.2. La classificazione v1.1 è confermata; il PDF di origine riporta ancora v1.0 e 01.10.2026 nelle intestazioni. Il contenuto contrattuale è conservato. I valori degli esempi sono dimostrativi; e-mail sostituite con example.com e coordinate bancarie lasciate vuote.

1. Scopo e architettura

Il presente documento descrive il protocollo HTTP/JSON esposto dal Trading Partner e utilizzato da OB1 per lo scambio di dati contabili e anagrafici. La specifica è rivolta allo sviluppatore del sistema esterno e descrive esclusivamente il contratto di integrazione, senza dettagli implementativi interni di OB1.

DirezioneMetodoFunzione
Trading Partner → OB1GETDati da importare/elaborare in OB1
OB1 → Trading PartnerPOSTEsito dell’elaborazione dei dati ricevuti
OB1 → Trading PartnerPOSTPiano dei conti e Centri di costo
OB1 → Trading PartnerPOSTIncassi clienti e Pagamenti fornitori

Il mandante viene identificato da id_ow. Per questa integrazione l’identificativo univoco esterno utilizzato negli esiti è id_teleutias. Il nome identifica l’ID del record nel sistema esterno e non modifica la struttura o il funzionamento del protocollo.

2. GET - richiesta dati a OB1

OB1 esegue una GET verso l’endpoint configurato del Trading Partner. La richiesta è incrementale e comprende il contesto del mandante e l’intervallo dei due esercizi aperti.

ParametroSignificato
last-sync-datetimeData/ora dell’ultima sincronizzazione registrata da OB1.
first-dateData iniziale dell’esercizio corrente.
last-dateData finale dell’esercizio successivo.
id_owIdentificativo del mandante presso il Trading Partner.

GET <base-url><token><get-url><last-sync-datetime>&first-date=<YYYY-MM-DD>&last-date=<YYYY-MM-DD>&id_ow=<ID> Nota: I nomi first-date, last-date e id_ow fanno parte del contratto corrente. L’endpoint, il token e la parte iniziale della URL sono configurabili.

2.1 Risposta GET

La risposta è un oggetto JSON. I metadati seguenti sono riconosciuti da OB1; le collection possono essere presenti solo quando contengono dati.

{
  "version": "1.0",
  "message": "",
  "sync-datetime": "01/10/2026@07:00:00",
  "debug": "",
  "ok": true,
  "login": true,
  "customers": [],
  "customers_deleted": [],
  "vendors": [],
  "vendors_deleted": [],
  "services": [],
  "services_deleted": [],
  "products": [],
  "products_deleted": [],
  "invoices": [],
  "invoices_deleted": [],
  "creditnotes": [],
  "creditnotes_deleted": [],
  "cinvoices": [],
  "cinvoices_deleted": [],
  "ccreditnotes": [],
  "ccreditnotes_deleted": [],
  "financial_transactions": [],
  "financial_transactions_deleted": [],
  "payments": [],
  "payments_deleted": []
}
CampoTipoUso
versionstringVersione del payload. Se assente OB1 usa 1.0.
messagestringMessaggio informativo del Trading Partner.
sync-datetimestringTimestamp di sincronizzazione restituito dal TP; se assente OB1 assegna data/ora corrente.
debugstringInformazione diagnostica opzionale.
okbooleanEsito generale della risposta.
loginbooleanEsito autenticazione/autorizzazione.

3. Anagrafiche GET

3.1 customers - Clienti

CampoTipoPresenzaDescrizione
id_customerstringSìID esterno cliente
nr_customerstringSìNumero cliente
namestringSìNome
companystringSìRagione sociale
surnamestringSìCognome
adressestringSìIndirizzo
adresse2stringSìIndirizzo 2
capstringSìCAP
locationstringSìLocalità
tel1stringSìTelefono
tel2stringSìTelefono 2
faxstringSìFax
emailstringSìE-mail
webstringSìSito web
cust_currencystringSìValuta
acct_codestringSìConto contabile
cust_titlestringSìTitolo
cust_statusstringSìStato
cust_langstringSìLingua
resp1stringSìContatto/responsabile
cust_exempt_ivastringSìIndicatore esenzione IVA
email_invoicearray[string]NoIndirizzi e-mail fattura
cust_country_codestringNoCodice paese
vat_numberstringNoNumero IVA
tax_idstringNoIdentificativo fiscale

3.2 vendors - Fornitori

CampoTipoPresenzaDescrizione
id_customerstringSìID esterno fornitore
nr_customerstringSìNumero fornitore
namestringSìNome
surnamestringSìCognome
companystringSìRagione sociale
adressestringSìIndirizzo
adresse2stringSìIndirizzo 2
capstringSìCAP
locationstringSìLocalità
tel1stringSìTelefono
tel2stringSìTelefono 2
faxstringSìFax
emailstringSìE-mail
webstringSìSito web
cust_currencystringSìValuta
acct_codestringSìConto contabile
cust_titlestringSìTitolo
cust_statusstringSìStato
cust_langstringSìLingua
resp1stringSìContatto/responsabile
cust_exempt_ivastringSìIndicatore esenzione IVA
cust_country_codestringNoCodice paese
vat_numberstringNoNumero IVA
tax_idstringNoIdentificativo fiscale
cf_acct_vendor_bank_namestringNoNome banca
cf_acct_vendor_bank_zipstringNoCAP banca
cf_acct_vendor_bank_citystringNoLocalità banca
cf_acct_vendor_bank_post_accountstringNoConto postale
cf_acct_vendor_bank_pvbr_codestringNoCodice PVBR
cf_acct_vendor_bank_ibanstringNoIBAN fornitore
{
  "vendors": [
    {
      "id_customer": "V250",
      "nr_customer": "250",
      "name": "",
      "surname": "",
      "company": "Fornitore SA",
      "adresse": "Via Esempio 20",
      "adresse2": "",
      "cap": "6900",
      "location": "Lugano",
      "tel1": "",
      "tel2": "",
      "fax": "",
      "email": "vendor@example.com",
      "web": "",
      "cust_currency": "CHF",
      "acct_code": "2000",
      "cust_title": "",
      "cust_status": "",
      "cust_lang": "IT",
      "resp1": "",
      "cust_exempt_iva": "0",
      "cust_country_code": "CH",
      "vat_number": "",
      "tax_id": "",
      "cf_acct_vendor_bank_name": "Banca Esempio",
      "cf_acct_vendor_bank_zip": "6900",
      "cf_acct_vendor_bank_city": "Lugano",
      "cf_acct_vendor_bank_post_account": "",
      "cf_acct_vendor_bank_pvbr_code": "",
      "cf_acct_vendor_bank_iban": ""
    }
  ]
}

3.3 services - Servizi

CampoTipoPresenzaDescrizione
id_sestringSìID servizio
codestringSìCodice
namestringSìDescrizione
se_statusstringSìStato
acct_code_salestringSìConto vendita
acct_code_purchasestringSìConto acquisto
pricedecimal/stringSìPrezzo vendita
price_buydecimal/stringSìPrezzo acquisto
iva_perc_selldecimal/stringSìPercentuale IVA vendita

3.4 products - Prodotti

CampoTipoPresenzaDescrizione
id_prstringSìID prodotto
codestringSìCodice
namestringSìDescrizione
pr_statusstringSìStato
acct_code_salestringSìConto vendita
acct_code_purchasestringSìConto acquisto
price_selldecimal/stringSìPrezzo vendita
price_buydecimal/stringSìPrezzo acquisto
iva_percdecimal/stringSìPercentuale IVA

4. Documenti e partite aperte

Per l’integrazione contabile, invoices rappresenta i documenti/partite clienti e cinvoices i documenti/partite fornitori. Le rispettive note di credito sono creditnotes e ccreditnotes.

4.1 invoices - Partite/documenti clienti

CampoTipoPresenzaDescrizione
id_invoicestringSìID esterno documento
num_invoicestringSìNumero documento
cf_acct_voucherstringSìVoucher contabile
date_invoicedateSìData documento
currencystringSìValuta
inv_exch_ratedecimal/stringSìCambio
nr_customerstringSìNumero cliente
inv_pvbr_refstringSìRiferimento PVBR
acct_codestringSìConto collettivo/contabile
inv_titlestringSìTitolo/riferimento
actionstringSìAzione richiesta
id_bankstringSìIdentificativo banca
is_ivastringSìIndicatore IVA
payment_condition_codestringNoCondizione pagamento
due_datedateNoScadenza
date_expirationdateNoScadenza alternativa; se presente prevale
company/name/surnamestringNoDati anagrafici cliente
adresse/cap/locationstringNoIndirizzo cliente
cust_country_codestringNoPaese
tel1/tel2/email/web/resp1stringNoContatti
email_invoicearray[string]NoE-mail fattura
doc_wivastringSì1 = importi IVA inclusa
inv_totaldecimal/stringSìTotale documento
total_no_ivadecimal/stringSìTotale imponibile
iva_totaldecimal/stringSìTotale IVA
inv_total_main_currencydecimal/stringSìTotale in valuta base
rowsarraySìRighe documento

Righe invoices.rows

CampoTipoPresenzaDescrizione
id_invoicestringSìID documento
descriptionstringSìDescrizione riga
orderingstringSìOrdinamento
qt_accountingdecimal/stringSìQuantità contabile
total_rowdecimal/stringSìTotale riga
acct_codestringSìConto contabile
cc_codestringSìCentro di costo
iva_rowdecimal/stringSìPercentuale IVA numerica della riga (es. 8.1, 2.6, 0). Non inviare il codice IVA interno del sistema contabile; la relativa conversione è gestita da OB1.
discount_realdecimal/stringNoSconto reale
discount_rowdecimal/stringNoSconto riga
id_prstringSìID prodotto; usare 0 se non applicabile
id_sestringSìID servizio; usare 0 se non applicabile
{
  "invoices": [
    {
      "id_invoice": "100001",
      "num_invoice": "2026-00125",
      "cf_acct_voucher": "125",
      "date_invoice": "2026-09-15",
      "currency": "CHF",
      "inv_exch_rate": "1",
      "nr_customer": "1001",
      "inv_pvbr_ref": "",
      "acct_code": "1100",
      "inv_title": "Fattura 2026-00125",
      "action": "CU",
      "id_bank": "",
      "is_iva": "1",
      "payment_condition_code": "30",
      "due_date": "2026-10-15",
      "company": "Cliente SA",
      "name": "",
      "surname": "",
      "adresse": "Via Esempio 10",
      "cap": "6900",
      "location": "Lugano",
      "cust_country_code": "CH",
      "tel1": "",
      "tel2": "",
      "email": "billing@example.com",
      "web": "",
      "resp1": "",
      "email_invoice": [
        "billing@example.com"
      ],
      "doc_wiva": "1",
      "inv_total": "1081.00",
      "total_no_iva": "1000.00",
      "iva_total": "81.00",
      "inv_total_main_currency": "1081.00",
      "rows": [
        {
          "id_invoice": "100001",
          "description": "Prestazione",
          "ordering": "1",
          "qt_accounting": "1",
          "total_row": "1000.00",
          "acct_code": "3200",
          "cc_code": "",
          "iva_row": "8.1",
          "discount_real": "0",
          "discount_row": "0",
          "id_pr": "0",
          "id_se": "0"
        }
      ]
    }
  ]
}

4.2 cinvoices - Partite/documenti fornitori

CampoTipoPresenzaDescrizione
id_invoicestringSìID esterno documento
num_invoicestringSìNumero documento
date_invoicedateSìData documento
currencystringSìValuta
inv_exch_ratedecimal/stringSìCambio
nr_customerstringSìNumero fornitore; può essere vuoto nel flusso di risoluzione/creazione fornitore
acct_codestringSìConto contabile
payment_condition_codestringNoCondizione pagamento
due_datedateNoScadenza
date_expirationdateNoScadenza alternativa; se presente prevale
qrcodestringSìContenuto QR se disponibile
qr_ibanstringSìQR-IBAN se disponibile
company/name/surnamestringNoDati anagrafici fornitore
adresse/cap/location/cust_country_codestringNoIndirizzo e paese
vat_numberstringNoNumero IVA
tax_idstringNoIdentificativo fiscale
cf_acct_vendor_bank_namestringNoNome banca
cf_acct_vendor_bank_zipstringNoCAP banca
cf_acct_vendor_bank_citystringNoLocalità banca
cf_acct_vendor_bank_post_accountstringNoConto postale
cf_acct_vendor_bank_pvbr_codestringNoCodice PVBR
cf_acct_vendor_bank_ibanstringNoIBAN
cf_acct_vendor_bank_bicstringNoBIC
vendor_numstringSìNumero/riferimento fornitore
actionstringSìAzione richiesta
is_ivastringSìIndicatore IVA
id_bankstringSìIdentificativo banca
doc_wivastringSì1 = importi IVA inclusa
inv_totaldecimal/stringSìTotale documento
total_no_ivadecimal/stringSìTotale imponibile
iva_totaldecimal/stringSìTotale IVA
inv_total_main_currencydecimal/stringSìTotale in valuta base
rowsarraySìRighe documento

Righe cinvoices.rows

CampoTipoPresenzaDescrizione
id_invoicestringSìID documento
descriptionstringSìDescrizione
orderingstringSìOrdinamento
qt_accountingdecimal/stringSìQuantità contabile
total_rowdecimal/stringSìTotale riga
acct_codestringSìConto contabile
cc_codestringSìCentro di costo
iva_rowdecimal/stringSìPercentuale IVA numerica della riga (es. 8.1, 2.6, 0). Non inviare il codice IVA interno del sistema contabile; la relativa conversione è gestita da OB1.
only_vatstringSìIndicatore sola IVA
id_prstringSìID prodotto; 0 se non applicabile
id_sestringSìID servizio; 0 se non applicabile
{
  "cinvoices": [
    {
      "id_invoice": "200001",
      "num_invoice": "RE-2026-7845",
      "date_invoice": "2026-09-20",
      "due_date": "2026-10-20",
      "currency": "CHF",
      "inv_exch_rate": "1",
      "nr_customer": "250",
      "acct_code": "2000",
      "payment_condition_code": "30",
      "qrcode": "",
      "qr_iban": "",
      "company": "Fornitore SA",
      "name": "",
      "surname": "",
      "adresse": "Via Fornitore 20",
      "cap": "6900",
      "location": "Lugano",
      "cust_country_code": "CH",
      "vat_number": "",
      "tax_id": "",
      "cf_acct_vendor_bank_name": "Banca Esempio",
      "cf_acct_vendor_bank_zip": "6900",
      "cf_acct_vendor_bank_city": "Lugano",
      "cf_acct_vendor_bank_post_account": "",
      "cf_acct_vendor_bank_pvbr_code": "",
      "cf_acct_vendor_bank_iban": "",
      "cf_acct_vendor_bank_bic": "",
      "vendor_num": "",
      "action": "CU",
      "is_iva": "1",
      "id_bank": "",
      "doc_wiva": "1",
      "inv_total": "2162.00",
      "total_no_iva": "2000.00",
      "iva_total": "162.00",
      "inv_total_main_currency": "2162.00",
      "rows": [
        {
          "id_invoice": "200001",
          "description": "Acquisto materiale",
          "ordering": "1",
          "qt_accounting": "1",
          "total_row": "2000.00",
          "acct_code": "4200",
          "cc_code": "100",
          "iva_row": "8.1",
          "only_vat": "0",
          "id_pr": "0",
          "id_se": "0"
        }
      ]
    }
  ]
}

4.3 creditnotes e ccreditnotes

Le note di credito seguono lo stesso principio delle fatture. Per i clienti la chiave documento è id_cn / num_cn e i totali sono cn_total e cn_total_main_currency. Per i fornitori ccreditnotes supporta inoltre i dati fiscali e bancari analoghi a cinvoices, compreso cf_acct_vendor_bank_bic. Le righe utilizzano la stessa struttura contabile di base.

4.4 Cancellazioni

Le collection *_deleted trasmettono la cancellazione di un oggetto già sincronizzato. Per anagrafiche e documenti il modello base è:

{
  "invoices_deleted": [
    {
      "id": "100001",
      "action": "D"
    }
  ]
}

Per financial_transactions_deleted sono presenti id, type e action. Per payments_deleted sono presenti id_invoice, id e action.

5. financial_transactions - Giornale Dare/Avere

CampoTipoPresenzaDescrizione
idstringSìID esterno registrazione
typestringSìTipo registrazione
actionstringSìAzione
textstringSìTesto registrazione
datedateSìData registrazione
currency_ratedecimal/stringNoCambio generale; se assente può essere ricavato dalle righe
debitsarraySìRighe Dare
creditsarraySìRighe Avere

Righe debits[] / credits[]

CampoTipoPresenzaDescrizione
datedateSìData riga
textstringSìTesto riga
amountdecimal/stringSìImporto in valuta riga
acct_codestringSìConto contabile
currencystringSìValuta
vat_percdecimal/stringSìPercentuale IVA numerica della riga contabile (es. 8.1, 2.6, 0). Non inviare il codice IVA interno del sistema contabile; la conversione è gestita da OB1.
amount_basedecimal/stringNoImporto in valuta base
doc_wivastringSìIndicatore IVA inclusa
{
  "financial_transactions": [
    {
      "id": "FT-2026-000125",
      "type": "GL",
      "action": "CU",
      "text": "Registrazione contabile",
      "date": "2026-09-30",
      "currency_rate": "1",
      "debits": [
        {
          "date": "2026-09-30",
          "text": "Costo materiale",
          "amount": "1000.00",
          "acct_code": "4200",
          "currency": "CHF",
          "vat_perc": "8.1",
          "amount_base": "1000.00",
          "doc_wiva": "0"
        }
      ],
      "credits": [
        {
          "date": "2026-09-30",
          "text": "Contropartita",
          "amount": "1000.00",
          "acct_code": "2000",
          "currency": "CHF",
          "vat_perc": "",
          "amount_base": "1000.00",
          "doc_wiva": "0"
        }
      ]
    }
  ]
}

6. payments - Incassi ricevuti tramite GET

CampoTipoPresenzaDescrizione
VoucherNbrstringSìNumero voucher
id_paymentstring/integerSìID esterno pagamento; se 0 OB1 può assegnare una sequenza
VoucherDatedateSìData
ClientNbrstringSìNumero cliente
CurrencystringSìValuta
CurrencyRatedecimal/stringSìCambio
TotalBcdecimal/stringSìImporto
TotalMcdecimal/stringSìImporto valuta principale
VoucherTextstringSìTesto
VoucherTypestringSìTipo voucher
CounterAccountCodestringSìConto contropartita
PaymentTypestringNoTipo pagamento
CompanystringNoRagione sociale

7. POST - Esito elaborazione

Regola IVA. Nei campi iva_row e vat_perc il Trading Partner deve trasmettere la percentuale IVA numerica, ad esempio 8.1, 2.6 oppure 0. Non deve trasmettere i codici IVA interni di sistema contabile: la conversione verso tali codici è gestita dalla mappatura configurata in OB1. Dopo l’elaborazione, OB1 invia al Trading Partner un JSON di esito. In questa integrazione l’identificativo esterno è id_teleutias. La struttura data può contenere le stesse collection gestite dalla GET.

{
  "data": {
    "invoices": [
      {
        "id_accounting": "F20260000125",
        "id_teleutias": "100001",
        "ok": true,
        "message": "",
        "total": "1081.00",
        "voucher_acct": "125"
      }
    ],
    "cinvoices": [
      {
        "id_accounting": "A20260000200",
        "id_teleutias": "200001",
        "ok": true,
        "message": "",
        "total": "2162.00",
        "voucher_acct": "200"
      }
    ],
    "financial_transactions": [
      {
        "id_accounting": "FT2026000125",
        "id_teleutias": "FT-2026-000125",
        "ok": true,
        "message": "",
        "total": "1000.00",
        "type": "GL",
        "voucher_acct": "300"
      }
    ]
  }
}
CampoDescrizione
id_accountingIdentificativo assegnato/gestito dal sistema contabile.
id_teleutiasIdentificativo univoco esterno dell’oggetto ricevuto. Viene restituito da OB1 per correlare l’esito al record originario.
okEsito elaborazione.
messageMessaggio di elaborazione/errore.
totalTotale, per gli oggetti che lo prevedono.
voucher_acctVoucher contabile, per gli oggetti che lo prevedono.
typeTipo, per financial_transactions.

8. POST - Piano dei conti e Centri di costo

OB1 invia il Piano dei conti completo e i Centri di costo. Questo flusso corrisponde all’AccountStructure richiesto dal Trading Partner.

{
  "data": {
    "accounts": [
      {
        "id_ow": "95",
        "AccCode": "1100",
        "DescrIt": "Debitori",
        "DescrEn": "Accounts receivable",
        "DescrDe": "Debitoren",
        "DescrFr": "Débiteurs",
        "Class": "1100",
        "Type": "0",
        "Currency": "CHF"
      }
    ],
    "costcenters": [
      {
        "id_ow": "95",
        "Code": "100",
        "DescrIt": "Amministrazione",
        "DescrEn": "Administration",
        "DescrDe": "Verwaltung",
        "DescrFr": "Administration",
        "Type": "1"
      }
    ]
  }
}

accounts[]

CampoDescrizione
id_owID mandante
AccCodeCodice conto
DescrItDescrizione italiana
DescrEnDescrizione inglese
DescrDeDescrizione tedesca
DescrFrDescrizione francese
ClassClasse
TypeTipo
CurrencyValuta

costcenters[]

CampoDescrizione
id_owID mandante
CodeCodice centro di costo
DescrItDescrizione italiana
DescrEnDescrizione inglese
DescrDeDescrizione tedesca
DescrFrDescrizione francese
TypeTipo

Nota: I nomi dei campi JSON sono case-sensitive. Le descrizioni multilingua utilizzano uniformemente DescrIt, DescrEn, DescrDe e DescrFr.

9. POST - Incassi clienti e Pagamenti fornitori

{
  "data": {
    "client_payments": [
      {
        "id_ow": "95",
        "VoucherNbr": "15025",
        "VoucherDate": "2026-09-30",
        "ClientNbr": "1001",
        "Currency": "CHF",
        "CurrencyRate": 1,
        "TotalBc": 1081.0,
        "TotalMc": 1081.0,
        "VoucherText": "Incasso fattura 2026-00125",
        "VoucherType": "Z",
        "CounterAccountCode": "1020",
        "HeaderId": "12345",
        "PaidHeaderId": "98765",
        "IdAdjustement": "0",
        "DocumentType": "I"
      }
    ],
    "vendor_payments": [
      {
        "id_ow": "95",
        "VoucherNbr": "16020",
        "VoucherDate": "2026-09-30",
        "supplierNbr": "250",
        "Currency": "CHF",
        "CurrencyRate": 1,
        "TotalBc": 2162.0,
        "TotalMc": 2162.0,
        "VoucherText": "Pagamento fattura RE-2026-7845",
        "VoucherType": "Z",
        "CounterAccountCode": "1020",
        "HeaderId": "22345",
        "PaidHeaderId": "88765",
        "IdAdjustement": "0",
        "DocumentType": "I"
      }
    ]
  }
}
CampoDescrizione
id_owID mandante
VoucherNbrNumero voucher
VoucherDateData voucher
ClientNbr / supplierNbrCliente o fornitore
CurrencyValuta
CurrencyRateCambio
TotalBcImporto BC
TotalMcImporto MC
VoucherTextTesto voucher
VoucherTypeTipo voucher
CounterAccountCodeConto contropartita
HeaderIdID testata
PaidHeaderIdID documento pagato
IdAdjustementID rettifica/compensazione
DocumentTypeTipo documento collegato; I = invoice, C = credit note

10. Regole HTTP e sincronizzazione

• La GET è eseguita da OB1 verso il servizio del Trading Partner; il Trading Partner non deve chiamare OB1 per ottenere i dati della GET.

• Il token è gestito dalla configurazione dell’integrazione. Nel profilo corrente viene trasmesso nella URL secondo l’endpoint concordato. Per installazioni che lo prevedono può essere concordato l’invio tramite intestazione HTTP dedicata, evitando l’esposizione del token nella query string. La modalità effettiva viene definita nella configurazione del collegamento.

• OB1 invia Accept: application/json.

• I POST standard inviano un body JSON. Nel connettore corrente il Content-Type dei POST standard è application/x-www-form-urlencoded (per incassi/pagamenti: application/x-www-form-urlencoded;charset=UTF-8). Il servizio del Trading Partner deve quindi accettare il body JSON con questo Content-Type.

• Per le date JSON si raccomanda il formato ISO YYYY-MM-DD, compatibile con il parser data utilizzato da OB1.

• I valori monetari/cambi possono essere trasmessi come rappresentazione numerica testuale con punto decimale; OB1 ne valida la convertibilità.

• Le collection non interessate possono essere omesse; quando presenti, devono essere array JSON.

• last-sync-datetime consente la sincronizzazione incrementale. Il valore sync-datetime restituito dal Trading Partner viene memorizzato da OB1 per la sincronizzazione successiva. Le date documento utilizzano il formato YYYY-MM-DD; sync-datetime è invece un timestamp tecnico del protocollo e utilizza il formato DD/MM/YYYY@HH:MM:SS.

11. Corrispondenza con i dati richiesti

InformazioneContratto
Giornale completo Dare/Averefinancial_transactions
Partite aperte clientiinvoices
Partite aperte fornitoricinvoices
Piano dei conti / AccountStructurePOST data.accounts
Centri di costoPOST data.costcenters
Incassi clientiPOST data.client_payments; GET payments se previsto dal flusso
Pagamenti fornitoriPOST data.vendor_payments
Codici IVANon è richiesto un export dell’anagrafica IVA. Nei dati si trasmette la percentuale IVA numerica; la mappatura verso i codici IVA del sistema contabile è gestita in OB1.
Mandanteid_ow
Esercizifirst-date e last-date nella GET
Dati bancari fornitorivendors e cinvoices: IBAN e altri dati banca; cinvoices supporta anche BIC e QR-IBAN.

12. Punto da confermare: “conti bancari”

Le strutture vendors e cinvoices coprono le coordinate bancarie del fornitore/documento (IBAN e dati banca; cinvoices anche BIC e QR-IBAN). Qualora per “conti bancari” si intendano invece i conti bancari propri del mandante, con relativo IBAN, valuta e conto contabile, tale informazione va definita separatamente.

13. Riepilogo implementativo per il Trading Partner

• Esporre l’endpoint GET configurato e filtrare i dati tramite id_ow, first-date, last-date e last-sync-datetime.

• Restituire JSON con ok/login e le collection pertinenti.

• Esporre l’endpoint POST configurato per ricevere gli esiti di elaborazione con id_teleutias.

• Accettare il POST del Piano dei conti/Centri di costo.

• Accettare il POST di incassi clienti/pagamenti fornitori.

• Mantenere i nomi dei campi e il case esattamente come specificato.

• Gestire gli array *_deleted per le cancellazioni quando utilizzati.