API
Introduzione
Swagger
Headers
Per chiamare correttamente gli endpoint messi a disposizione dal servizio TS Pay Gateway, è necessario includere gli headers come descritto qui.
Struttura dell'endpoint
Gli endpoint sono costruiti secondo la struttura:
/api/v{X}/{itemId}/...
dove
vXdove X è la versione dell'API (al momento solo v1)itemIdè il company registry dell'azienda per la quale si richiede il servizio
In questa guida tutti gli endpoint sono descritti senza il prefisso /api/vX che va dunque anteposto
Incasso
Fattura attiva
Descrizione
Consente di ricevere un pagamento attraverso il servizio di TS Pay; chiamando l'endpoint link2pay si riceverà un'url col quale sarà possibile fare un pagamento.
Richiesta link per effetture un pagamento
Genera un link per effettuare un pagamento attraverso il servizio di TS Pay.
[POST] /{itemId}/link2pay
Nella request in particolare abbiamo:
templatecontenente il testo ed eventualmente il logo da visualizzare nella pagina del pagamento generata e raggiungibile al link restituito in rispostatitletitolo, generalmente usato per indicare la ragione sociale del merchant (es: "TeamSystem S.p.A.")descmotivazione del pagamento (es: "Fattura di vendita")paymentRefestremi della fattura (es: "Numero 123 del 15/06/2020")logolink all'immagine da visualizzare come logo
callbackUrlurl cui reindirizzare l'utente una volta completata l'operazione. facoltativosourceTypessorgenti di pagamento accettate: carta di credito, SDD o entrambi (default)maxPaymentsNumbernumero massimo di pagamenti consentiti (0=illimitato)amountl'importo da pagare espresso come numero intero in cui le ultime due cifre compongono la parte decimale (ad es. 1450 è da considerare come 14,50)externalRefun riferimento univoco al pagatore, da utilizzare in seguito come elemento di ricercametadataelementi di tracciabilità, da utilizzare per la riconciliazione
Nella response l'API fornisce:
orderKeyidentificativo dell'ordineurllink da utilizzare per eseguire l'operazione
Richiesta link per memorizzare una sorgente di pagamento per addebiti futuri
Genera un link per salvare una sorgente di pagamento attraverso il servizio di TS Pay.
[POST] /{itemId}/link2save
Nella request in particolare abbiamo:
templatecontenente il testo ed eventualmente il logo da visualizzare nella pagina del pagamento generata e raggiungibile al link restituito in rispostatitletitolo, generalmente usato per indicare la ragione sociale del merchant (es: "TeamSystem S.p.A.")descmotivazione del pagamento (es: "Fattura di vendita")paymentRefestremi della fattura (es: "Numero 123 del 15/06/2020")logolink all'immagine da visualizzare come logo
callbackUrlurl cui reindirizzare l'utente una volta completata l'operazione. facoltativosourceTypessorgenti di pagamento accettate: carta di credito, SDD o entrambi (default)maxSourceNumbernumero massimo di sorgenti memorizzabili (0=illimitato, default=1)maxAmountl'importo massimo per gli addebiti, inteso come cumulativo, espresso come numero intero in cui le ultime due cifre compongono la parte decimale (ad es. 1450 è da considerare come 14,50)contextIdil contesto a cui la memorizzazione della sorgente si applica, quindi nel caso specifico la fatturaexternalRefun riferimento univoco al pagatore, da utilizzare in seguito come elemento di ricercametadataelementi di tracciabilità, da utilizzare per la riconciliazione
Nella response l'API fornisce:
orderKeyidentificativo dell'ordineurllink da utilizzare per eseguire l'operazione
Addebito
Esegue l'addebito sulla sorgente salvata con il LinkToSave.
[POST] /{itemId}/charges
Tra gli header è previsto:
x-operation-keychiave univoca dell'addebito con lo scopo di prevenire i doppi incassi, in modo che se si tenta una seconda operazione con la stessa chiave viene restituito un errore (opzionale)
Nella request in particolare abbiamo:
sourceKeyidentifica la sorgente di pagamento memorizzata dal customer attraverso il LinkToSavecontextIdl'eventuale contesto precedentemente impostatodescriptionè la motivazione del pagamento, che finisce nel movimentoamountl'importo da addebitare espresso come numero intero in cui le ultime due cifre compongono la parte decimale (ad es. 1450 è da considerare come 14,50)
Nella response l'API fornisce:
orderKeyidentificativo dell'ordinechargeKeyidentificativo dell'addebito
Esito pagamanto
Da utilizzare per conoscere tutti i dettagli dell'addebito.
[GET] /{itemId}/charges/orders/{orderKey}
I parametri richiesti sono:
orderKeypath variable - key dell'ordine, ritornato dalla chiamata alla creazione della richiesta di pagamento.
Conti
Aggregazione conti e carte
Descrizione
Consente di recuperare le informazioni aggregate di saldo e movimenti relativi a conti corrente e carte di credito tramite il servizio di TS Pay. La SCA è unica ma va rinnovata periodicamente, in genere ogni 90 giorni.
Informazioni conti collegati
Restituisce l'elenco dei prodotti (conti e carte) collegati, comprensivo di saldo disponibile e informazioni relative al consenso.
[GET] /{itemId}/linked-accounts
Nella response l'API fornisce:
accountIdid del conto/cartaibaniban del conto (se il prodotto è un conto corrente)maskedPannumero della carta mascherato (se il prodotto è una carta)currencyvaluta di contoproviderIdid del provider (ASPSP)bankNamenome della bancaproductCodecodice del prodottolastBalancesaldoamountimporto (espresso come numero intero in cui le ultime due cifre compongono la parte decimale)currencyvaluta
lastBalanceDatedata di riferimento del saldoaccountNaturenatura del contoconsentIdid del consensoconsentExpireDatedata di scadenza del consensolastRefreshStatusstato ultimo aggiornamentolastRefreshDatedata ultimo aggiornamento
Informazioni conti collegati o precedentemente utilizzati
Restituisce l'elenco dei prodotti (solo conti) collegati o precedentemente utilizzati. I primi comprensivi di saldo disponibile e informazioni relative al consenso.
[GET] /{itemId}/accounts
Nella response l'API fornisce:
accountIdid del conto/carta (solo per conti collegati)ibaniban del contocurrencyvaluta di contoproviderIdid del provider (ASPSP)bankNamenome della bancaproductCodecodice del prodottolastBalancesaldo (solo per conti collegati)amountimporto (espresso come numero intero in cui le ultime due cifre compongono la parte decimale)currencyvaluta
lastBalanceDatedata di riferimento del saldo (solo per conti collegati)
Informazioni movimenti
Restituisce le informazioni relative alle transazioni dei conti collegati.
[GET] /{itemId}/transactions
I parametri richiesti sono:
dateFromdata inizio movimenti (opzionale)dateTodata fine movimenti (opzionale)bookingStatusstato del movimento (booked o pending) (opzionale)accountsaccounts per i quali mostrare i movimenti (opzionale)
Nella response l'API fornisce:
accountIdidentifica il conto a cui la transazione fa riferimentobookingStatusstato del movimento (booked o pending)bookingDatedata del movimentoremittanceInformationUnstructureddescrizione del movimentotransactionAmountimporto movimento
amountimporto (espresso come numero intero in cui le ultime due cifre compongono la parte decimale)currencyvaluta
valueDatedata valuta
Aggiornamento dati di un conto
Una volta collegato un conto/carta è necessario fare un aggiornamento dei dati, per scaricare transazioni e saldi. Questa operazione è schedulata tutte le notti, ma si può anche eseguire a richiesta tramite la seguente API. Va fatta per tutti gli account collegati con quel determinato consenso.
[POST] /{itemId}/accounts/{accountId}/refresh
I parametri richiesti sono:
accountIdpath variable - identifica il conto
Nel corpo della request in particolare abbiamo:
psuIpAddressIP del client che effettua la richiesta (è richiesto un indirizzo IP valido)
Nella response l'API fornisce:
accountIdidentifica il contostatusstato dell'operazione di refresh (tipicamente "updating")
Pagamento
Fattura passiva
Descrizione
Consente di effettuare un bonifico singolo, per una o più fatture/scadenze relative allo stesso beneficiario. La SCA è richiesta ad ogni operazione, fatte salve specifiche esenzioni previste dalla normativa.
Inizializzazione pagamento
Inizializza un pagamento tramite SCT.
[POST] /{itemId}/payments
Nella request in particolare abbiamo:
externalRefun riferimento univoco al creditore, da utilizzare in seguito come elemento di ricercametadataelementi di tracciabilità, da utilizzare per la riconciliazioneproviderIdid del provider (ASPSP, la banca)productCodeid del prodotto selezionatopsuIpAddressindirizzo IP del richiedentedebtorAccountconto del pagatoreibanibancurrencyvaluta
creditorAccountconto del creditoreibanibancurrencyvalutacreditorNamenome
amountimporto (espresso come numero intero in cui le ultime due cifre compongono la parte decimale)currencyvalutarequestedExecutionDatedata di esecuzionerequestedExecutionTimeora di esecuzioneremittanceInformationsdescrizione (causale)paymentProductSCT o SCTinsttppRedirectUriURL di redirect
Per conoscere productCode e providerId va preventivamente invocato l'endpoint per la lettura dei conti.
Nella response l'API fornisce:
paymentIdid del pagamento (al momento ciascun gruppo contiene un solo pagamento)statusstato dell'operazionetotalTransactionFeescommissioni totali della transazionescaManagerRedirectUrlURL di redirect allo SCA manager
Esito pagamento
Interroga l'esito del pagamento.
[GET] /{itemId}/payments/{paymentId}
I parametri richiesti sono:
paymentIdpath variable - id del pagamento, ritornato dalla chiamata all'inizializzazione dello stessopsuIpAddressquery string - indirizzo IP del client
Nella response l'API fornisce:
paymentIdid del pagamentostatusstato dell'operazionetotalTransactionFeescommissioni totali della transazionetotalAmountimporto totale della transazioneamountimporto (espresso come numero intero in cui le ultime due cifre compongono la parte decimale)currencyvaluta
debtorAccountiban del debitorecreditorAccountiban del creditorecreatedOndata operazione
Consenso SCA
Effettuare una SCA
Descrizione
In questa sezione vengono elencati gli endpoint che consentono di ottenere e rinnovare i vari consensi necessari al collegamento di un conto.
Ottenimento consenso una-tantum per mostrare la lista dei conti
Consente di effettuare la SCA (usa e getta) per accedere ai conti/carte in proprio possesso presso la banca, per il prodotto definito nel productId.
[POST] /{itemId}/consents/accountsList
Nella request in particolare abbiamo:
providerId*id della banca (o provider)productCode*codice del prodottoaccountNature*natura dell'account ("account" o "card")tppRedirectUriURL di redirect dopo che la SCA viene effettuata
Nella response l'API fornisce:
consentIdid del consensoconsentStatusstato del consensoscaManagerRedirectUrlURI per effettuare la SCAvalidUntildata fine validità
Ottenimento consenso ricorrente
Consente di effettuare la SCA (valida tipicamente 90 giorni) per collegare ai conti/carte in proprio possesso presso la banca, per il prodotto selezionato.
[POST] /{itemId}/consents/recurring
Nella request in particolare abbiamo:
providerId*id della banca (o provider)productCode*codice del prodottotppRedirectUriURL di redirect dopo che la SCA viene effettuataaccountAccess*oggetto composto dabalances*lista di oggetti con la seguente forma:resourceId*ibanmaskedPancurrency*accountNature
transactions*lista di oggetti con la stessa forma dibalancesaccountslista di oggetti con la stessa forma dibalances
Nella response l'API fornisce:
consentIdid del consensoconsentStatusstato del consensoscaManagerRedirectUrlURI per effettuare la SCAvalidUntildata fine validità
Rinnovo di un consenso
Consente di rinnovare la SCA (valida tipicamente 90 giorni) a partire da un consenso precedentemente valido.
[PUT] /{itemId}/consents/{consentId}/renew
I parametri richiesti sono:
consentIdpath variable - id del consenso.
Nella response l'API fornisce:
consentIdid del consensoconsentStatusstato del consensoscaManagerRedirectUrlURI per effettuare la SCAvalidUntildata fine validità
Revoca di un consenso
Consente di rinnovare la SCA (valida tipicamente 90 giorni) a partire da un consenso precedentemente valido.
[DELETE] /{itemId}/consents/{consentId}
I parametri richiesti sono:
consentIdpath variable - id del consenso.
Nella response l'API torna il consenso stesso, con lo status aggiornato.
Recuperare i conti collegati ad un consenso
Consente di recuperare l'elenco dei conti/carte in proprio possesso presso la banca a fronte del consenso precedentemente fornito.
[GET] /{itemId}/consents/{consentId}/accounts
I parametri richiesti sono:
consentIdpath variable - id del consenso.
Nella response l'API fornisce:
accountslista degli account composti dalle seguenti proprietàaccountIdstato del consensoresourceIdid della risorsaibancodice IBANcurrencyvaluta di contoproviderIdid della bancaproductCodecodice del prodottoconsentIdid del consenso
Banche e Prodotti
Descrizione
In questa sezione vengono elencati gli endpoint che consentono di ottenere informazioni riguardante le banche e i prodotti associati.
Banche
Consente di recuperare l'elenco delle banche.
[GET] /{itemId}/banks
Nella response l'API fornisce:
idid della banca (o provider) da utilizzare come bankId (o providerId) nelle varie chiamateaspspCodecodice ASPSPsatusstatobusinessNamedescrizione della bancaaisInfoinformazioni relative al servizio ContiglobalBankConsentconsenso globale supportatosupportedNaturesnature supportate (conto, carta o entrambi)
logoURL del logo della bancareadyToUseindica che la banca è pronta per essere utilizzata dal serviziosupportedPaymentProductsmodalità di pagamento supportateSCT-ITSCT ItaliaSCT-EUSCT EuropaIPSCT instantaneoCBCross-border-
T2Target 2
Prodotti
Consente di recuperare l'elenco dei prodotti di una determinata banca.
[GET] /{itemId}/banks/{bankId}/products
Il parametro bankId fa riferimento all'id della banca ottenibile chiamando l'endpoint Banche sopra.
Nella response l'API fornisce:
aspspProductCodecodice del prodotto da utilizzare come productCode nelle varie chiamateaspspProductDescriptiondescrizione prodotto estesaaspspProductUuiduuid del prodottoaspspProductSuggestedLabeldescrizione sintetica del prodotto
Settings
Descrizione
In questa sezione vengono elencati gli endpoint riguardanti le impostazioni/configurazioni di pay-gateway
Configurazione di pagamento
[GET] /{itemId}/settings/config
Response:
minChargeAmount: importo minimo transazione (in centesimi)maxChargeAmount: importo massimo transazione (in centesimi)balanceRefundReserve: esposizione massima per rimborso (in centesimi)minWireAmount: importo minimo accredito (in centesimi)maxWireAmount: importo massimo accredito (in centesimi)netChargeEnabled: incasso tramite SDD al netto abilitatopayoutBlocked: accredito bloccato