Autopay Online Payments è una soluzione completa per l'accettazione dei pagamenti da parte dei clienti dei negozi online, che supporta numerosi metodi di pagamento disponibili sul mercato, come bonifici bancari, Pay by link, BLIK, Google Pay, Apple Pay. In questa documentazione troverete tutto ciò che vi serve per implementare rapidamente un gateway di pagamento nel vostro negozio online. La documentazione sui pagamenti online Autopay comprende sezioni come. Elaborazione di transazioni e regolamenti, Registrazione e gestione dei punti di regolamento tra l'AP e la piattaforma del mercato dei partner., Registrazione e funzionamento dei Servizi basati sul Modulo Integratore, Estensioni aggiuntive.
Applicazione - Applicazione mobile del partner, che comunica con il SDK del sistema di pagamento online Autopay per registrare le transazioni.
AP - Autopay Spółka Akcyjna con sede legale a Sopot in ul. Powstańców Warszawy 6, iscritta nel registro degli imprenditori tenuto dal Tribunale Distrettuale di Danzica-Północ a Danzica, VIII Divisione Commerciale del Registro Nazionale dei Tribunali con numero KRS 0000320590, NIP 585-13-51-185, Regon 191781561, con capitale sociale di 2.205 PLN 500 (interamente versato), sottoposta a vigilanza della Commissione di vigilanza finanziaria e iscritta nel registro degli istituti di pagamento nazionali con il numero IP17/2013, proprietaria del Sistema.
Punto di equilibrio - oggetto nel Sistema di Pagamento che rappresenta il Negozio integrato con la Piattaforma Marketplace e registrato nel Sistema di Pagamento utilizzando il modulo messo a disposizione del Partner da AP.
ClientHash - nei messaggi; esso consente di assegnare al Cliente lo strumento di pagamento (ad es. Carta) in modo anonimo. Su questa base, il Partner può attivare gli addebiti successivi nel modello di pagamento automatico.
Modello di Commissione - Il modello di commissione concordato con l'integratore. Descrive i valori delle commissioni per le transazioni passate all'AP e all'integratore.
Giorno lavorativo - nei giorni feriali dal lunedì al venerdì, esclusi i giorni festivi.
Modulo per l'integratore - sito web in cui è presente un modulo che consente al Cliente di registrarsi, modificare o aggiungere un altro Servizio.
Strumento di pagamento (Canale di pagamento) - un insieme di procedure concordate o un dispositivo individualizzato, utilizzato dal cliente per inviare un ordine di pagamento, ad esempio carta, PBL.
Strumento di trasferimento elettronico - Un insieme di procedure o un dispositivo personalizzato concordato tra il Partner e l'AP, utilizzato dal Partner per impartire un ordine di pagamento che consenta l'esecuzione di un prelievo di fondi dal saldo al conto bancario del Partner o del Cliente e da un altro strumento di pagamento appartenente al Partner o al Cliente. La fornitura della funzionalità è soggetta ad accordi individuali tra il Partner e AP.
Integratore - Gli integratori sono i cosiddetti partner che hanno implementato Autopay Online Payments nei loro sistemi e che consentono l'attivazione di all'interno delle loro soluzioni. Tra gli integratori figurano entità come Shoper, Sky-Shop, Gymsteer, Selly Verifiche, FaniMani, AtomStore, Ebexo, Selly Azymut, PayNow, Comarch.
IPN (Notifica immediata del prodotto) - Una notifica immediata inviata dal Sistema di pagamento online al Servizio partner che comunica una modifica dello stato del prodotto. La struttura dell'IPN è simile a quella dell'ITN (estesa solo dal nodo prodotto).
ITN (Notifica di transazione istantanea) - notifica immediata inviata dal Sistema di pagamento online al Servizio partner che trasmette una modifica dello stato della transazione.
ISTN (Notifica istantanea di transazione di regolamento) - notifiche immediate di modifica dello stato di un'operazione di regolamento. Il sistema trasmette immediatamente le notifiche del fatto che un'operazione di regolamento è stata ordinata (eventuali ritiri/restituzioni) e di una modifica del suo stato.
ICN (Notifica di configurazione istantanea) - Notifica immediata
della configurazione di un negozio appena registrato, comunicazione di
informazioni su una modifica dello stato della carta del negozio (ad esempio in caso di
attivazione della carta). I messaggi ICN possono essere inviati anche in caso di modifica
della configurazione del negozio, di modifica dei dati AML, di abilitazione/disabilitazione di un canale di pagamento.
Scheda - una carta di pagamento emessa nell'ambito degli schemi VISA e Mastercard, autorizzata dai regolamenti di tali schemi a eseguire Transazioni senza la sua presenza fisica.
Cliente (pagatore) - una persona che effettua un pagamento sul Sito web per servizi
data-deepl-translation/>o prodotti del Partner utilizzando il Sistema.
Cestino prodotti - è l'informazione sulle componenti del pagamento, trasmessa (nel link di pagamento) al Sistema per la successiva elaborazione. Ogni prodotto del carrello è descritto da due campi obbligatori: il componente dell'importo e un campo che consente di passare parametri specifici al prodotto.
Link per il pagamento - richiesta che abilita l'inizio della transazione di input (descritta in parte Inizio della transazione). Può essere utilizzato direttamente sulle pagine web (metodo POST), mentre nelle e-mail ai clienti si deve utilizzare il metodo Pre-transazione per ottenere un link breve al pagamento (metodo GET).
Link di verifica - URL che indirizza al trasferimento di verifica
.
Mercato - Una soluzione di pagamento che funziona all'interno del sistema di pagamento online Autopay. Consente al Partner di gestire una piattaforma di vendita in cui i prodotti o i servizi sono offerti ai clienti dagli Appaltatori del Partner. I modelli Advanced Transaction Settlement e Settlement Transaction consentono di effettuare pagamenti direttamente dal Cliente alla Controparte del Partner, tenendo conto del Paniere di Prodotti. La fornitura della funzionalità è soggetta a accordi individuali tra il Partner e AP.
Modello di pagamento - modello in cui la commissione per la transazione
effettuata viene pagata dal cliente ad AP (costo aggiunto all'importo della transazione
). In questo caso, il cliente accetta anche
i termini e le condizioni di AP durante il pagamento.
Modello del commerciante - in cui la commissione viene regolata tra Autopay e il partner e non viene aggiunta all'importo della transazione pagato dal cliente.
Partner - l'entità destinataria dei fondi derivanti dalla vendita di
prodotti o servizi distribuiti dall'Affiliato sul Sito web.
Un partner, nel caso del modello Marketplace, è un'entità, che non è
un consumatore, interessata a gestire l'accettazione da parte dell'AP dei pagamenti dovuti
al partner per prodotti o servizi distribuiti dal
partner.
Pay By Link (PBL) - strumento che consente l'esecuzione di pagamenti tramite un bonifico intrabancario dal conto del Cliente al conto dell'AP. Dopo aver effettuato l'accesso all'online banking, i dati necessari per l'esecuzione del bonifico (dati informativi del destinatario, numero del suo conto bancario, importo e data di esecuzione del bonifico) vengono compilati automaticamente grazie al sistema di scambio dati tra banca e AP.
Agente tecnico - l'entità con il diritto di accedere al Conto di pagamento del Partner, che autorizza tale accesso (consenso o accordo). Nel sistema, la procura è rappresentata dalla configurazione del file ID plenipotenziarioUn'entità può avere più deleghe per diversi Partner.
Piattaforma di mercato - piattaforma su cui è disponibile l'opzione di registrazione dei Punti di regolamento.
Pagamento automatico - pagamento senza la necessità di inserire ogni volta i dati della carta o i dati di autorizzazione del
trasferimento.
Pagamento con un solo clic - è un pagamento automatico ordinato dal cliente.
Pagamento ciclico - è un pagamento automatico ordinato senza
data-deepl-translation/>il coinvolgimento del Cliente (da parte del Servizio Partner).
Pre-transazione - ordinamento specifico (eseguito in background) del link di pagamento
.
Trasferimento di verifica - La parte del processo relativa alla registrazione e alla modifica dei Servizi del Partner nel Sistema. Comporta per il Partner l'esecuzione di un trasferimento di fondi per verificare i dati e il conto bancario per l'erogazione dei fondi al Partner. La verifica dei dati è un obbligo dell'AP ai sensi, tra l'altro, della legge del 16.11.2000 sulla prevenzione del riciclaggio di denaro e del finanziamento del terrorismo. Ogni trasferimento di verifica deve ricevere lo stato di verifica finale (positivo o negativo) entro 30 giorni dal pagamento della transazione. Se lo stato di verifica finale non viene fornito entro il termine sopra specificato, il sistema attribuirà automaticamente uno stato negativo. Questo processo si applica alle verifiche in cui Autopay invia al cliente una richiesta di completamento dei dati e non riceve indietro le informazioni necessarie per completare la verifica.
Conto di pagamento (saldo) - Un conto di pagamento gestito da AP
per il Partner in cui vengono raccolti i fondi depositati dai Clienti.
RPAN (Notifica di attivazione del pagamento ricorrente) - messaggio di attivazione del servizio di pagamento automatico.
RPDN (Notifica di disattivazione dei pagamenti ricorrenti) - messaggio di disattivazione del servizio di pagamento automatico.
Servizio - il sito web o i siti web del Partner integrati con il
Sistema in cui il Cliente può acquistare prodotti o servizi dal Partner (o dal Partner Contraente nel caso del Marketplace).
Nel caso di un Marketplace, un oggetto nel Sistema di pagamento che rappresenta il
Marketplace del Partner. Tutte le
transazioni avviate da tale Marketplace sono collegate ad esso.
Specifiche - documentazione che descrive la comunicazione tra il servizio e il sistema.
Sistema di pagamento online AP (sistema) - una soluzione informatica e funzionale in base alla quale AP fornisce al Partner un'applicazione che consente l'elaborazione dei pagamenti del Cliente effettuati con gli Strumenti di pagamento, nonché la verifica dello stato dei pagamenti e la ricezione dei pagamenti.
Trasferimento rapido - L'esecuzione di pagamenti tramite bonifico intrabancario dal conto del Cliente al conto dell'AP. Il pagamento si differenzia dai pagamenti effettuati tramite PBL in quanto il Cliente deve compilare personalmente tutti i dati necessari per effettuare il trasferimento.
Transazione - indica un'operazione di pagamento ai sensi della Legge del 19 agosto 2011 sui servizi di pagamento.
Transazione di ingresso - la parte del processo di gestione del pagamento relativa al pagamento effettuato dal cliente all'AP.
Transazione di regolamento - parte del processo di elaborazione del pagamento, relativo al trasferimento effettuato dal PA sul conto del Partner. Affinché venga creata una Transazione di regolamento, la Transazione di ingresso deve essere pagata dal Cliente. Una Transazione di regolamento può riguardare una singola Transazione di ingresso (pagamento) o aggregarne più di una.
Legge - Legge del 19 agosto 2011 sui servizi di pagamento.
Validità del link - che specifica il momento oltre il quale il Collegamento di pagamento cessa di essere attivo. Deve essere impostato dal parametro LinkValidityTime del Collegamento di pagamento.
Validità delle transazioni - parametro che specifica il momento oltre il quale il Sistema di pagamento online si blocca e restituisce automaticamente i pagamenti del cliente. Il valore predefinito è calcolato aggiungendo 6 giorni alla data in cui il Cliente ha selezionato il Canale di pagamento. Può anche essere impostato dal parametro ValidityTime nel Link di pagamento. In questo caso, allo scadere del tempo indicato, il collegamento non è più attivo e i pagamenti vengono restituiti al Cliente. La validità massima della transazione è di 31 giorni.
Widget per l'autopagamento - un meccanismo che consente di effettuare pagamenti con carta per prodotti/servizi offerti dal Partner, in cui i dati della carta vengono inseriti dal Cliente in un meccanismo incorporato direttamente nel sito Web del Partner. L'invocazione del formato widget Card richiede l'implementazione di codice JavaScript utilizzando una libreria AP dedicata.
Widget di onboarding - una soluzione che consente all'Integratore di incorporare il Modulo Integratore (preparato da Autopay) direttamente sul sito web dell'Integratore, in modo che il Partner non venga reindirizzato al dominio di Autopay quando registra il proprio negozio - l'intero processo viene eseguito sul sito web del Partner.
Etichetta bianca - modello di integrazione, in cui il cliente già nel Servizio seleziona il canale di pagamento e accetta le norme (a condizione che la necessità di accettarle derivi da accordi individuali tra il Partner e l'AP), e l'inizio della transazione contiene un campo GatewayID compilato (e in alcuni casi DefaultRegulationAcceptanceID o RecurringAcceptanceID).
Avvio di un ordine di pagamento - il momento in cui l'utente del gateway di pagamento seleziona un canale di pagamento e viene reindirizzato a una pagina in base al canale di pagamento selezionato oppure (per i pagamenti automatici, e-wallet o BLIK) viene effettuato un tentativo di addebito sulla carta o sul conto presso il fornitore del canale di pagamento.
TEST
host_gates: https://testpay.autopay.eu
host_card_gates: https://testcards.autopay.eu
PRODUZIONE
host_gates: https://pay.autopay.eu
host_card_gates: https://cards.autopay.eu
Sul Sito del Partner, una volta completato l'ordine, al cliente
viene presentata l'opzione di poter effettuare un pagamento tramite il Sistema
. Facendo clic sul link corrispondente si avvia la transazione e
si apre una nuova finestra:
a) una pagina dedicata del Sistema predisposta da AP, in cui al Cliente viene presentato l'elenco dei Canali di pagamento disponibili e il riepilogo dell'operazione registrata (cfr. Modello paywall) o
b) direttamente da un Canale di Pagamento (Banca, BLIK o per il pagamento con Carta) - (vedi Modello WhiteLabel).
Dal lato del sistema, i parametri trasmessi vengono convalidati e la transazione viene salvata con un periodo di validità prestabilito. Se, al momento della convalida, il periodo di validità del collegamento è già stato superato, il cliente riceverà un messaggio corrispondente (la verifica della validità della transazione avviene anche quando viene modificato lo stato del pagamento). Dopo la verifica positiva dei parametri della transazione (e dopo la selezione del Canale di pagamento), il Cliente autorizza la transazione. Nel suo titolo, oltre agli identificativi assegnati dal Sistema, può essere presente anche una descrizione fissa, precedentemente concordata tra l'AP e il Partner, o un valore dinamico trasmesso dal Partner all'inizio della transazione.
Modello di integrazione consigliato consiste nel trasmettere un messaggio per avviare una transazione di in background, cioè senza reindirizzare l'utente al Sistema (vedi Pre-transazione). In questo modello è possibile utilizzare forme avanzate di autorizzazione delle transazioni (WhiteLabel, pagamenti automatici, SDK mobile), diagnostica della correttezza dei parametri trasmessi e molte altre estensioni.
Una volta autorizzata la transazione (nella pagina del Canale di pagamento) il cliente torna da essa al Sistema, dove viene automaticamente reindirizzato al Servizio partner.
CONSIGLIO: Una descrizione dettagliata della struttura del link di ritorno si trova nella sezione del documento Reindirizzamento al sito del partner.
Lo stato di autorizzazione (pagamento) ricevuto dal Canale di pagamento viene trasmesso dal Sistema al Servizio partner mediante un messaggio ITN. Il Sistema ripeterà l'invio di messaggi finché la ricezione non sarà confermata dal Servizio partner o la notifica scadrà. Le transazioni, che vengono pagate dopo la scadenza del periodo di validità della transazione - saranno restituite al Cliente (mittente del bonifico).
Facoltativamente, il Sistema può notificare il fatto che è stata emessa una transazione di regolamento
. A tal fine viene utilizzato un messaggio ISTN opportunamente modificato.
I dati richiesti scambiati durante l'integrazione differiscono per gli ambienti di test e di produzione. Di seguito è riportato un elenco dei parametri passati dall'AP al Partner e nella direzione inversa.
Vengono inoltre fornite informazioni generali, ovvero i canali di pagamento attivi insieme a grafici (come risultato dell'interrogazione dell'elenco dei canali di pagamento disponibili).
Facoltativamente, possono essere presenti ulteriori dati trasmessi dal Partner all'AP, ad esempio: informazioni sul contenuto richiesto del carrello e sul modo in cui viene elaborato (nei report, nella fatturazione, nel pannello di amministrazione), requisiti aggiuntivi (per i saldi prepagati). Per i pagamenti automatici BLIK anche la durata predefinita dei pagamenti automatici attivati e l'etichetta predefinita dei pagamenti automatici attivati.
Nella versione minima dell'integrazione, dovrebbe essere implementato il supporto per l'avvio di una transazione, il ritorno da essa e il supporto per la comunicazione ITN.
CONSIGLIO: Si consiglia di familiarizzare con lo schema operativo. Se
necessario, vale la pena di familiarizzare anche con i parametri aggiuntivi o i servizi
.
Durante il test, completare i campi bianchi del foglio e rispedirlo ad AP per confermare la corretta integrazione di prima di migrare all'ambiente di produzione.
CONSIGLIO: Prima della distribuzione in produzione, si raccomanda di eseguire i test in conformità con il documento scenari di prova nella versione base e, per le integrazioni più avanzate, anche in base a scenari aggiuntivi.
Quando avvia una transazione, il Servizio partner trasmette al sistema di pagamento online i parametri necessari alla sua esecuzione e alla successiva trasmissione dello stato di pagamento.
Tutti i parametri vengono passati tramite il metodo POST (Tipo di contenuto: application/x-www-form-urlencoded).
Il protocollo è sensibile alle maiuscole sia nei nomi che nei valori dei parametri
. I valori dei parametri trasmessi devono essere codificati in
UTF-8 (e transport-protocol-encode prima dell'invio, a meno che lo strumento
usato per inviare il messaggio non lo faccia da solo,
esempio di codifica: URLEncode).
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | stringa{1,10} | L'ID del servizio partner, assegnato durante la registrazione del servizio, identifica in modo univoco il servizio partner nel sistema di pagamento online. I numeri sono accettabili. |
2 | ID ordine | SÌ | stringa{1,32} | Identificatore della transazione, composto da un massimo di 32 caratteri alfanumerici latini. Il valore del campo deve essere unico per il Servizio partner. Sono accettati caratteri alfanumerici latini e caratteri nell'intervallo: -_ |
3 | Importo | SÌ | importo | Importo della transazione. Un punto - '.' - è usato come separatore decimale. Formato: 0,00; lunghezza massima: 14 cifre prima del punto e 2 dopo il punto. NOTE: Il valore ammissibile di una singola transazione nel sistema di produzione è rispettivamente:
|
4 | Descrizione | NO | stringa{1,79} | Titolo della transazione (pagamento); all'inizio del titolo del bonifico vengono inseriti gli identificativi della transazione assegnati dal Sistema di pagamento online, a cui viene aggiunto il valore di questo parametro. In alcuni casi, indipendentemente dal PA, il titolo del bonifico può essere ulteriormente modificato dalla Banca in cui è avvenuto il pagamento del cliente. Il valore del parametro consente di inserire caratteri latini alfanumerici e caratteri nell'intervallo: . : - , spazio . |
5 | GatewayID | NO | intero{1,5} | Identificatore del Canale di Pagamento con cui il Cliente intende regolare il pagamento. Questo parametro è responsabile in particolare del modello di presentazione dei canali di pagamento:
|
6 | Valuta | NO | stringa{1,3} | Valuta della transazione; la valuta predefinita è il PLN (l'uso di un'altra valuta deve essere concordato durante l'integrazione). All'interno di ID servizio È supportata una sola valuta. Sono accettati solo i valori: PLN, EUR, GBP e USD. |
7 | Indirizzo e-mail del cliente | NO | stringa{3,255} | Indirizzo e-mail del cliente. |
19 | Tempo di validità | NO | stringa{1,19} | Tempo di scadenza della transazione; quando viene superato, il collegamento cessa di essere attivo e l'eventuale deposito viene restituito al mittente del trasferimento; valore di esempio: 2021-10-31 07:54:50; se il parametro manca, viene impostato il valore predefinito di 6 giorni. La validità massima di una transazione è di 31 giorni (se il valore del parametro è impostato più avanti di 31 giorni, il tempo di validità sarà ridotto di conseguenza). Ad esempio, una transazione iniziata il 2020-05-01 08:00:00, con ValidityTime = 2021-05-01 08:00:00, riceverà validità fino al 2020-06-01 08:00:00. (Ora in CET) |
34 | LinkValidityTime | NO | stringa{1,19} | Tempo di scadenza del link; quando questo tempo viene superato, il link diventa inattivo, ma ciò non influisce sul tempo di deposito; valore di esempio: 2014-10-30 07:54:50; assicurarsi che il tempo di transazione sia adattato al tempo di scadenza del link (potrebbe essere necessario inserire anche il parametro Tempo di validitàper estendere la sua validità standard). |
n.d. | Hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. |
La transazione viene avviata inviando una chiamata HTTPS una combinazione dei parametri di cui sopra all'indirizzo del Sistema di pagamento online determinato durante la registrazione del servizio.
NOTE: Il numero di transazioni avviate dal Partner in un minuto può essere al massimo di 100, a meno che il Partner e l'AP non concordino un limite superiore nell'ambito dell'accordo concluso.
Esempio di avvio di una transazione:
Indirizzo:
Parametri:
ServiceID=2
OrderID=100
Importo=1,50
Hash=2ab52e6918c6ad3b69a8228a2ab815f11ad58533eeed963dd990df8d8c3709d1
Invio di un messaggio senza tutti richiesto parametri
(ServiceID, OrderID, Importo e Hash) o contenenti valori errati dei loro
, causerà l'interruzione del processo di pagamento con un
codice di errore della transazione e un breve messaggio di errore (senza ritorno alla pagina
del Servizio partner).
IMPORTANTE! "Coppia di parametri ID servizio i ID ordine identifica univocamente
la transazione. Non è consentita la ripetizione del valore del parametro
. ID ordine per l'intera durata della fornitura di servizi da parte del Sistema ad un
Servizio Partner (ID servizio)."
Parametro opzionale GatewayID è utilizzato per specificare il Canale di pagamento, con cui deve essere effettuato il pagamento. Ciò consente di trasferire la schermata di selezione dei Canali di pagamento al Servizio. L'elenco attuale degli identificativi dei canali di pagamento, insieme ai loghi, è disponibile tramite il metodo gatewayList.
Il messaggio di avvio della transazione può essere trasmesso in background, cioè senza reindirizzare l'utente al Sistema di pagamento online. In questo modello, anche la selezione del Canale di pagamento viene effettuata dal Cliente sul Servizio del Partner.
Subito dopo aver completato l'autorizzazione alla transazione, il Cliente viene reindirizzato dal sito web del Canale di pagamento al sito web online del Sistema di pagamento, dove il Cliente viene automaticamente reindirizzato al Servizio del Partner.
Il reindirizzamento viene attuato inviando una richiesta HTTPS (utilizzando il metodo GET) a un indirizzo di ritorno predeterminato sul Servizio partner. Il protocollo è sensibile alle maiuscole e minuscole sia nei nomi che nei valori dei parametri.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | stringa{1,10} | ID servizio partner. |
2 | ID ordine | SÌ | stringa{1,32} | L'identificativo della transazione assegnato nel Servizio partner e comunicato all'inizio della transazione. |
n.d. | Hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
Esempio di messaggio che reindirizza il Cliente dal sistema di pagamento online al Sito del Partner
https://sklep_nazwa/strona_powrotu?ServiceID=123458&OrderID=123402816&Hash=5432d69a66d721b2f5f785432bf5a1fc1b913bdb3bba465856a5c228fe95c1f8
Il Sistema trasmette le notifiche di modifica dello stato delle transazioni non appena riceve tali informazioni dal Canale di pagamento, e il messaggio si riferisce sempre a una singola transazione. Le conferme sono inviate dal Sistema di pagamento online all'indirizzo del server del Servizio del Partner, come stabilito al momento dell'aggiunta della configurazione del Servizio del Partner.
NOTE: Il dominio deve essere pubblico e accessibile tramite il sistema. Il dominio deve essere protetto da un certificato valido, emesso da un'autorità di certificazione pubblica (Certificate authority) Il server deve presentarsi con una catena di certificati completa (Chain of Trust) La comunicazione deve essere basata su TLS proxy versione 1. 2 o 1.3 *Altre forme di sicurezza della connessione, ad esempio VPN, mTLS devono essere concordate individualmente.2 o 1.3 *Altre forme di sicurezza della connessione, ad esempio VPN, mTLS, devono essere concordate individualmente con il responsabile dell'implementazione.
Esempio:
https://sklep_nazwa/odbior_statusu
La notifica di una modifica dello stato di una transazione in ingresso consiste nell'invio da parte del Sistema di un documento XML contenente i nuovi stati della transazione.
Il documento viene inviato tramite HTTPS (porta predefinita 443) - metodo POST, come parametro HTTP con il nome transazioni. Questo parametro è memorizzato utilizzando il meccanismo di codifica di trasporto Base64.
Formato del documento (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transactionList>
<serviceID>ServiceID</serviceID>
<transactions>
<transaction>
<orderID>OrderID</orderID>
<remoteID>RemoteID</remoteID>
<amount>999999.99</amount>
<currency>PLN</currency>
<gatewayID>GatewayID</gatewayID>
<paymentDate>YYYYMMDDhhmmss</paymentDate>
<paymentStatus>PaymentStatus</paymentStatus>
<paymentStatusDetails>PaymentStatusDetails</paymentStatusDetails>
</transaction>
</transactions>
<hash>Hash</hash>
</transactionList>
NOTE: Nodo transazioni può contenere solo un nodo
transazione (e quindi la notifica riguarda sempre una transazione).
Valori degli elementi ID ordine i importo relativi a ciascuna delle transazioni
sono identici ai valori dei campi corrispondenti forniti
dal Servizio partner all'inizio della rispettiva transazione.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceID | SÌ | stringa{1,10} | L'ID del sito partner, assegnato durante la registrazione del servizio, identifica in modo univoco il sito partner nel sistema di pagamento online. |
2 | ID ordine | SÌ | stringa{1,32} | L'identificativo della transazione assegnato nel Servizio partner e comunicato all'inizio della transazione. |
3 | ID remoto | SÌ | stringa{1,20} | Identificatore alfanumerico della transazione assegnato dal sistema di pagamento online. Vale la pena di memorizzarlo insieme all'ordine per l'ulteriore elaborazione (per transazioni multiple con la stessa ID ordine, per le restituzioni, ecc.) Tale situazione può verificarsi, ad esempio, se il Cliente cambia il Canale di pagamento, richiama la stessa transazione dalla cronologia del browser, ecc. Il sistema consente di bloccare tali casi, ma l'opzione è sconsigliata (non sarebbe possibile pagare per una transazione abbandonata). |
5 | importo | SÌ | importo | Importo della transazione. Un punto - '.' - viene utilizzato come separatore decimale. Formato: 0,00; lunghezza massima: 14 cifre prima del punto e 2 dopo il punto. |
6 | valuta | SÌ | stringa{1,3} | Valuta della transazione. |
7 | gatewayID | NO | stringa{1,5} | Identificatore del Canale di pagamento attraverso il quale il Cliente ha regolato il pagamento. |
8 | data di pagamento | SÌ | stringa{14} | L'ora in cui la transazione è stata autorizzata, trasmessa nel formato YYYMMDDhhmmss. (ora CET) |
9 | Stato del pagamento | SÌ | enum | Stato dell'autorizzazione alla transazione, assume valori (descrizione dei cambiamenti di stato più avanti):
|
10 | pagamentoStatoDettagli | NO | stringa{1,64} | Stato dettagliato della transazione, valore che può essere ignorato dal Servizio partner. |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
CONSIGLIO: Elemento hash (messaggio) è usato per autenticare il documento. Per una descrizione di come viene calcolato l'hash, vedere la sezione Sicurezza delle transazioni.
La risposta di notifica prevede uno stato HTTP di 200 (OK) e un testo
in formato XML (non codificato Base64), restituito dal
Partner Service nella stessa sessione HTTP, contenente la conferma della ricezione dello stato della transazione
.
Struttura di conferma (XML)
<?xml version="1.0" encoding="UTF-8"?>
<confirmationList>
<serviceID>ServiceID</serviceID>
<transactionsConfirmations>
<transactionConfirmed>
<orderID>OrderID</orderID>
<confirmation>Confirmation</confirmation>
</transactionConfirmed>
</transactionsConfirmations>
<hash>Hash</hash>
</confirmationList>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceID | SÌ | stringa{1,10} | Identificatore di servizio del partner derivato dal messaggio. |
2 | ID ordine | SÌ | stringa{32} | L'identificativo della transazione, assegnato nel Servizio partner e comunicato all'inizio della transazione, ricavato dal messaggio. |
3 | conferma | SÌ | stringa{1,25} | L'elemento viene utilizzato per comunicare lo stato di verifica dell'autenticità della transazione da parte del Servizio partner. Il valore dell'elemento è determinato dalla verifica della correttezza del valore del parametro serviceID e valuta, un confronto tra i valori dei campi ID ordine i importo nel messaggio di notifica e nel messaggio di avvio della transazione, oltre a verificare che l'hash calcolato dai parametri del messaggio corrisponda al valore fornito nel campo hash del messaggio. Fanno eccezione i modelli in cui all'importo della transazione viene aggiunta una commissione. In questi casi, il valore dell'importo nell'ITN viene aumentato di questa commissione. La convalida dell'importo può quindi essere effettuata sulla base del campo opzionale ITN startAmount. Tuttavia, questo campo deve essere richiesto durante l'integrazione. Per l'elemento sono previsti due valori conferma:
|
n.d. | hash | SÌ | stringa{1,128} | L'elemento hash (nel messaggio di risposta) viene utilizzato per autenticare la risposta e viene calcolato a partire dai valori dei parametri della risposta. Per una descrizione di come viene calcolato l'hash, vedere la sezione Sicurezza delle transazioni. |
Se non c'è una risposta corretta alle notifiche inviate, il Sistema farà ulteriori tentativi per comunicare l'ultimo stato della transazione dopo che è trascorso un tempo specificato. Il servizio partner deve eseguire la propria logica aziendale (ad es. e-mail di conferma) solo dopo il primo messaggio di un determinato stato di pagamento.
CONSIGLIO: Vale la pena di dare un'occhiata a Schema di rinnovo dei messaggi ITN/ISTN/IPN/RPAN/RPDN.
Il metodo di pagamento scelto dal cliente invierà ogni volta uno stato
. IN ATTESA. In un'ulteriore comunicazione ITN, il sistema fornirà lo stato di
SUCCESSO o FALLIMENTO.
NOTA Stato IN ATTESA non verrà inviato se:
Per una singola transazione (con parametri unici ID ordine e ID remoto) non ci può essere alcun cambiamento di status SUCCESSO su IN ATTESA o SUCCESSO su FALLIMENTO.
In ogni caso, è possibile che si verifichi una modifica dello stato dettagliato -. pagamentoStatoDettagli (I successivi messaggi di modifica dello stato dei dettagli sono solo a scopo informativo e non devono portare alla riconsegna del servizio/prodotto pagato ecc.)
In casi particolari di utilizzo, può verificarsi un cambiamento di stato:
a) FALLIMENTO su SUCCESSO (ad esempio, dopo che un consulente AP ha approvato una transazione pagata con un importo errato. Questo comportamento richiede accordi commerciali speciali e non è abilitato per impostazione predefinita),
b) SUCCESSO su FALLIMENTO (ad esempio, dopo l'attivazione di più transazioni con la stessa ID ordinema diverso ID remoto). Un caso del genere si verifica quando il Cliente avvia più pagamenti con lo stesso ID ordine (ad esempio, il Cliente cambia la sua decisione su quale Canale di pagamento vuole pagare per la transazione). Ciascuno dei pagamenti da lui avviati genera ITN e il Partner deve distinguere le singole transazioni sulla base del parametro ID remoto. Al momento della ricezione dello status FALLIMENTO possono essere molto diversi, può accadere che si riceva tale stato dopo aver ricevuto un SUCCESSO (con un diverso ID remoto). In tal caso, il messaggio ITN deve essere confermato, ma non deve comportare la cancellazione dello stato della transazione nel sistema del partner.
In un modello in cui non è necessario notificare al cliente via e-mail/sms gli stati di non successo, è possibile limitare la quantità di informazioni salvate nel database del servizio e il tracciamento delle modifiche del RemoteID.
Quando è troppo è troppo:
per gli stati diversi da SUCCESSOogni volta confermare l'ITN con la struttura di risposta corretta, lo stato CONFERMATO e il valore correttamente conteggiato del campo Hash,
in caso di ricezione di prima stato SUCCESSOaggiungere anche aggiornare lo stato, l'ora e il RemoteID nel database del Servizio e eseguire processi aziendali (notifiche al cliente di un cambiamento di stato, esecuzione di un servizio a pagamento/spedizione di un prodotto, ecc,)
in caso di stato successivo SUCCESSOogni volta che conferma l'ITN con la struttura di risposta corretta, lo status CONFERMATO e il valore correttamente calcolato del campo Hash, senza aggiornare il database del servizio e senza processi aziendali.
In un modello in cui è necessaria l'intera cronologia dei cambiamenti di stato delle transazioni e/o la notifica al cliente dei principali cambiamenti di stato delle transazioni, si dovrebbe utilizzare una logica che si avvicina alla descrizione seguente.
Il Sistema di pagamento online utilizza diversi meccanismi per aumentare la sicurezza delle transazioni effettuate tramite esso. La trasmissione di tra tutte le parti coinvolte in una transazione avviene tramite una connessione sicura basata sul protocollo TLS con chiave a 2048 bit.
Inoltre, la comunicazione è protetta da una funzione di hash calcolata a partire dai valori dei campi del messaggio e dalla chiave condivisa (la chiave condivisa stessa è memorizzata nel sistema in forma criptata con l'algoritmo AES-ECB).
Come funzione di hash viene utilizzato l'algoritmo SHA256 o SHA512 (metodo determinato in fase di configurazione del rispettivo Servizio partner nel sistema di pagamento online). L'impostazione predefinita è SHA256.
Descrizione di come viene calcolato il valore della funzione hash ed esempi di calcolo di per messaggi di base.
NOTE: Gli esempi non tengono conto di tutti i possibili campi opzionali
, pertanto se tali campi sono presenti in un particolare messaggio
, devono essere inclusi nella funzione di scelta rapida nell'ordine del numero
accanto al campo.
Il valore della funzione hash, utilizzata per autenticare il messaggio, viene calcolato
da una stringa contenente i campi concatenati del messaggio (concatenazione di campi
). I valori dei campi sono concatenati, senza i nomi dei parametri, e un separatore (sotto forma di carattere
|) viene inserito tra
valori consecutivi (non vuoti). L'ordine in cui i campi sono incollati segue l'ordine in cui essi
appaiono nell'elenco dei parametri nella documentazione.
IMPORTANTE! In assenza di un parametro opzionale nel messaggio o nel caso di un valore di parametro vuoto, non utilizzare il separatore!
Alla stringa così creata viene aggiunta alla fine una chiave condivisa tra il Servizio partner e il Sistema di pagamento online. Dalla stringa così creata, viene calcolato il valore della funzione hash che costituisce il valore del campo Hash del messaggio.
Hash = function(values_field_1_message + "|" + values_field_2_message + "|" + ... + "|" + values_field_n_message + "|" + key_shared);
Dati di servizio dei partner:
ServiceID = 2chiave_condivisa = 2test2
Indirizzo del gateway https://{host_gates}/pathway
a. Inizio della transazione.
Chiamata POST senza carrello, con parametri:
ServiceID=2
OrderID=100
Importo=1,50
Hash=2ab52e6918c6ad3b69a8228a2ab815f11ad58533eeed963dd990df8d8c3709d1
dove
Hash=SHA256(“2|100|1.50|2test2”)
b. Inizio della transazione. Chiamata POST con il carrello.
CONSIGLIO: Opzione discussa in dettaglio nella sezione Cestino prodotti.
ServiceID = 2
OrderID = 100
Importo = 1,50
Prodotto (descritto di seguito)
chiave_condivisa = 2test2
Carrello prodotti (XML)
<?xml version="1.0" encoding="UTF-8"?>
<productList>
<product>
<subAmount>1.00</subAmount>
<params>
<param name="productName" value="Nazwa produktu 1" />
</params>
</product>
<product>
<subAmount>0.50</subAmount>
<params>
<param name="productType" value="ABCD" />
<param name="ID" value="EFGH" />
</params>
</product>
</productList>
Dopo la codifica con la funzione base64, otteniamo il valore del parametro Prodotto:
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cHJvZHVjdExpc3Q+PHByb2R1Y3Q+PHN1YkFtb3VudD4xLjAwPC9zdWJBbW91bnQ+PHBhcmFtcz48cGFyYW0gbmFtZT0icHJvZHVjdE5hbWUiIHZhbHVlPSJOYXp3YSBwcm9kdWt0dSAxIiAvPjwvcGFyYW1zPjwvcHJvZHVjdD48cHJvZHVjdD48c3ViQW1vdW50PjAuNTA8L3N1YkFtb3VudD48cGFyYW1zPjxwYXJhbSBuYW1lPSJwcm9kdWN0VHlwZSIgdmFsdWU9IkFCQ0QiIC8+PHBhcmFtIG5hbWU9IklEIiB2YWx1ZT0iRUZHSCIgLz48L3BhcmFtcz48L3Byb2R1Y3Q+PC9wcm9kdWN0TGlzdD4=
Il valore Hash viene calcolato come segue:
Hash=SHA256(“2|100|1.50|PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cHJvZHVjdExpc3Q+PHByb2R1Y3Q+PHN1YkFtb3VudD4xLjAwPC9zdWJBbW91bnQ+PHBhcmFtcz48cGFyYW0gbmFtZT0icHJvZHVjdE5hbWUiIHZhbHVlPSJOYXp3YSBwcm9kdWt0dSAxIiAvPjwvcGFyYW1zPjwvcHJvZHVjdD48cHJvZHVjdD48c3ViQW1vdW50PjAuNTA8L3N1YkFtb3VudD48cGFyYW1zPjxwYXJhbSBuYW1lPSJwcm9kdWN0VHlwZSIgdmFsdWU9IkFCQ0QiIC8+PHBhcmFtIG5hbWU9IklEIiB2YWx1ZT0iRUZHSCIgLz48L3BhcmFtcz48L3Byb2R1Y3Q+PC9wcm9kdWN0TGlzdD4=|2test2”)
Dati di servizio dei partner:
ServiceID = 2
chiave_condivisa = 2test2
<https://sklep_nazwa/strona_powrotu?ServiceID=2>&OrderID=100&Hash=254eac9980db56f425acf8a9df715cbd6f56de3c410b05f05016630f7d30a4ed
dove
Hash=SHA256("2|100|2test2")
Dati di servizio dei partner:
serviceID = 1
chiave_condivisa = 1test1
ITN (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transactionList>
<serviceID>1</serviceID>
<transactions>
<transaction>
<orderID>11</orderID>
<remoteID>91</remoteID>
<amount>11.11</amount>
<currency>PLN</currency>
<gatewayID>1</gatewayID>
<paymentDate>20010101111111</paymentDate>
<paymentStatus>SUCCESS</paymentStatus>
<paymentStatusDetails>AUTHORIZED</paymentStatusDetails>
</transaction>
</transactions>
<hash>a103bfe581a938e9ad78238cfc674ffafdd6ec70cb6825e7ed5c41787671efe4</hash>
</transactionList>
dove
Hash=SHA256(“1|11|91|11.11|PLN|1|20010101111111|SUCCESS|AUTHORIZED|1test1”)
Esempio di risposta (XML)
<?xml version="1.0" encoding="UTF-8"?>
<confirmationList>
<serviceID>1</serviceID>
<transactionsConfirmations>
<transactionConfirmed>
<orderID>11</orderID>
<confirmation>CONFIRMED</confirmation>
</transactionConfirmed>
</transactionsConfirmations>
<hash>c1e9888b7d9fb988a4aae0dfbff6d8092fc9581e22e02f335367dd01058f9618</hash>
</confirmationList>
dove il valore
Hash=SHA256("1|11|CONFIRMED|1test1");
Dati di servizio dei partner:
ServiceID = 100
MessageID = 11111111111111111111111111111111
Valute = PLN,EUR
Lingua = IT
chiave_condivisa = 1test1
dove il valore
Hash=SHA256('100|11111111111111111111111111111111|PLN,EUR|PL|1test1')
La risposta alla chiamata di cui sopra può essere la seguente (nota: nessun campo hash nella risposta):
{
"result": "OK",
"errorStatus": null,
"description": null,
"gatewayGroups": [
{
"type": "PBL",
"title": "Przelew internetowy",
"shortDescription": "Wybierz bank, z którego chcesz zlecić płatność",
"description": null,
"order": 1,
"iconUrl": null
},
{
"type": "BNPL",
"title": "Kup teraz, zapłać później",
"shortDescription": "Kup teraz, zapłać później",
"description": null,
"order": 2,
"iconUrl": null
}
],
"serviceID": "10000",
"messageID": "2ca19ceb5258ce0aa3bc815e80240000",
"gatewayList": [
{
"gatewayID": 106,
"name": "Płatność testowa PBL",
"groupType": "PBL",
"bankName": "NONE",
"iconURL": "https://testimages.autopay.eu/pomoc/grafika/106.gif",
"state": "OK",
"stateDate": "2023-10-03 14:35:01",
"description": "Płatność testowa",
"shortDescription": null,
"descriptionUrl": null,
"availableFor": "BOTH",
"requiredParams": ["Nip"],
"mcc": {
"allowed": [1234, 9876],
"disallowed": [1111]
},
"inBalanceAllowed": true,
"minValidityTime": null,
"order": 1,
"currencies": [
{
"currency": "PLN",
"minAmount": 0.01,
"maxAmount": 5000.00
}
],
"buttonTitle": "Płacę"
},
{
"gatewayID": 701,
"name": "Zapłać później z Payka",
"groupType": "BNPL",
"bankName": "NONE",
"iconUrl": "https://testimages.autopay.eu/pomoc/grafika/701.png",
"state": "OK",
"stateDate": "2023-10-03 14:37:10",
"description": "<div class=\"payway_desc\"><h1>Dane dotyczące kosztu</h1><p>Zapłać później - jednorazowo do 45 dni (...). Szczegóły oferty na: <a href="?r="https://payka.pl\" target=\"_blank\">Payka.pl</a></p></div>",
"shortDescription": "Zapłać później - jednorazowo do 45 dni lub w kilku równych ratach",
"descriptionUrl": null,
"availableFor": "B2C",
"requiredParams": [],
"mcc": null,
"inBalanceAllowed": false,
"minValidityTime": 60,
"order": 2,
"currencies": [
{
"currency": "PLN",
"minAmount": 49.99,
"maxAmount": 7000.00
}
],
"buttonTitle": "Płacę"
}
]
}
Questo capitolo descrive le regole relative allo scambio di messaggi tra l'AP e la Piattaforma Integratore nell'ambito della funzionalità di aggiunta e modifica dei Servizi, che per impostazione predefinita avviene utilizzando l'API REST e opzionalmente utilizzando i Web-Services del protocollo SOAP (il Servizio fornisce la sua definizione sotto forma di un documento WSDL).
Il Partner mette a disposizione un link sulla propria Piattaforma, la cui selezione da parte del Cliente invia un messaggio ad AP per ricevere un link che indirizza al Modulo Integratore predisposto da AP (gli effetti visivi come la combinazione di colori o il logo dell'Integratore sul modulo sono determinati durante l'integrazione).
NOTA È anche possibile incorporare il modulo Integrator preparato da Autopay direttamente nel sito web dell'Integrator (in un Iframe). A tale scopo, il viene utilizzato un elemento HTML chiamato Iframe. L'uso di questo tipo di soluzione comporta un lavoro aggiuntivo da parte dell'integratore, ma consente al partner di rimanere sul sito web dell'integratore durante l'intero processo di registrazione/modifica del negozio. La soluzione è descritta in dettaglio nel capitolo "Il sito web dell'integratore". "Widget per l'onboarding".
I dati raccolti nel modulo (dopo che è stato compilato dal cliente) vengono elaborati da AP, dove, a seconda del tipo di modulo, viene eseguita la registrazione/modifica/aggiunta di un altro servizio. Dopo aver superato con successo questa fase, i dati di configurazione del servizio e i link di verifica (quando si modificano dati non sensibili, i link non appaiono) vengono inviati in modo asincrono all'integratore tramite i canali stabiliti durante l'integrazione. Parallelamente, viene inviata al cliente anche un'e-mail contenente i link al pagamento di verifica (è possibile disattivare questo invio di per sostituirlo con una comunicazione che avviene direttamente tramite il Partner).
A questo punto il cliente viene automaticamente reindirizzato alla pagina di ritorno dell'integratore (l'indirizzo viene determinato durante l'integrazione) o
viene presentata una pagina di ringraziamento per l'utilizzo del servizio
, che facoltativamente può includere collegamenti alla verifica del pagamento
e/o un collegamento alla piattaforma dell'integratore.
Una volta che il Cliente ha pagato la transazione di verifica, AP controlla la correttezza dei dati dichiarati da quel Cliente durante la registrazione al servizio. Se AP assegna uno stato di verifica positivo, il servizio di pagamento del servizio viene attivato e viene inviato un messaggio al Cliente con i termini e le condizioni accettati da lui/lei nel modulo di registrazione.
IMPORTANTE! La versione di produzione del servizio si trova dietro il firewall. L'accesso
è assegnato per un numero finito e definito durante l'integrazione del pool di IP
. Questo non si applica all'ambiente di prova.
IMPORTANTE! Per un singolo Integratore su un determinato ambiente (test/produzione) viene fornito un singolo ID di piattaforma (PlatformID) e una chiave condivisa utilizzata per costruire l'hash per tutti i messaggi scambiati tra l'Integratore e l'AP nell'ambito del processo di registrazione e modifica dei servizi.
IMPORTANTE! Il link generato dall'AP che conduce al modulo
per la registrazione/modifica dei dati del servizio ha un tempo di validità predefinito di 24 ore.
IMPORTANTE! Non è consentito condividere in alcuna forma di (anche nel codice in esecuzione su un server di terzi) i dati di autorizzazione per il servizio fornito dall'AP (PlatformID/key condivisi).
IMPORTANTE! Se, al momento della registrazione o della modifica di un negozio, il cliente seleziona diverse valute con cui effettuare i pagamenti nel negozio, ciascuna di queste valute, insieme al conto di fatturazione ad essa assegnato, deve essere verificata separatamente, tramite un trasferimento di verifica.
IMPORTANTE! Sul modulo utilizzato per la modifica dei dati, la verifica dell'identità deve avvenire prima che il su di esso visualizzi i dati attuali del Servizio. A tal fine, al Cliente vengono presentati due canali di verifica: un messaggio sms o un'e-mail. Dopo aver selezionato uno di essi, viene inviato al Cliente un codice di verifica (a tal fine viene utilizzato il numero di telefono o l'indirizzo di posta elettronica fornito dal Cliente durante il processo di registrazione), che deve essere inserito dal Cliente in un ulteriore modulo. Una volta che il di questo campo è stato correttamente compilato e verificato da AP, al Cliente viene concesso l'accesso al modulo di modifica dei dati con tutti i suoi contenuti.
NOTE: In parte Elaborazione di transazioni e regolamenti Vengono descritte le funzionalità di e il modo in cui sono integrate nell'ambito relativo alla gestione dei pagamenti per il Servizio e i servizi relativi alla gestione dei pagamenti, ad esempio lo schema di fatturazione.
I seguenti elementi non sono disponibili nel modello Integrator funzioni della parte transazionale:
a) Dati da scambiare durante l'integrazione
b) Carrello dei prodotti
Lo scambio di messaggi (in formato JSON) tra l'AP e la Piattaforma Integratore, che implementa la funzionalità di download dei link al modulo di registrazione/modifica dei servizi, avviene tramite un'API REST. L'accesso al servizio è protetto dal filtraggio degli indirizzi IP.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | piattaformaId | SÌ | intero | L'identificativo univoco permanente della piattaforma assegnato dal sistema di pagamento online. |
2 | messaggioId | SÌ | stringa{32} | L'identificativo univoco della richiesta all'interno della Piattaforma fornito dalla parte che ha avviato il messaggio in questione. |
3 | messaggioTempo | SÌ | dateTime | Tempo di generazione del messaggio, i messaggi con un tempo impostato successivo a 5 minuti rispetto all'ora del server del Sistema di pagamento online saranno rifiutati. È buona norma impostare l'ora del messaggio now()-1min, nel caso in cui l'ora dei server non sia sincronizzata. Esempio: 2016-07-20T09:35:00.000 (messaggio generato il 2016-07-20 09:36:00). |
n.d. | hash | SÌ | stringa | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri. L'ordine in cui i campi vengono concatenati segue l'ordine in cui compaiono nell'elenco dei parametri. Una chiave, condivisa tra il Sistema di piattaforma e il sistema di pagamento online, viene incollata alla fine della stringa di cui sopra. Dalla stringa risultante viene calcolato il valore della funzione di hash SHA256, che costituisce il valore del campo Hash del messaggio. Hash = SHA256(valori_messaggio + chiave condivisa) |
n.d. | formAzione | SÌ | stringa | Parametro che indica il link del modulo da restituire in risposta a una richiesta inviata. Valori ammessi:
|
n.d. | formParams | SÌ/NO | stringa{32} | Il requisito dipende dagli accordi individuali con l'integratore. Si tratta di un oggetto contenente campi aggiuntivi, che costituiscono informazioni per l'AP sulla configurazione del servizio registrato che l'integratore si aspetta. Nei casi in cui l'integratore disponga di determinate informazioni sul partner, può fornirle nella richiesta di collegamento, in modo da determinare la configurazione del servizio del partner, ridurre il numero di campi del modulo di registrazione/modifica e non richiedere al partner di inserire nuovamente gli stessi dati. Per i campi indicati di seguito, è possibile configurare la loro visibilità in base alla formAction (REGISTER/UPDATE). Ciò significa che, ad esempio, il campo SERVICE_URL può essere specificato dall'integratore nella query di collegamento del modulo e visualizzato nel modulo di registrazione come modificabile, ma può essere nascosto nel modulo di modifica dei dati. Per fromAction = ADD_SERVICE il comportamento dei campi è sempre definito allo stesso modo di fromAction = REGISTER. Campi attualmente disponibili:
|
Esempio 1: Registrazione del servizio
{
"platformId":1,
"messageId":"22111111112411111111111111111130",
"messageTime":"2016-07-20T09:35:00.000",
"hash":"43688c048e451fba81ea7895cca13c5b6eb953a6ddf23c6089918259163381e1",
"formAction":"REGISTRATION",
"formParams":{
"SERVICE_URL":"https://serivce-integrator-test.pl",
"COMMISSION_MODEL":{
"PLN":"5"
},
"IS_CARDS_ENABLED":"TRUE"
}
}
Esempio 2: Modifica dei dati di un servizio con ID = 11111
{
"platformId":1,
"messageId":"11111111111111111111111111211254",
"messageTime":"2016-07-20T09:35:00.000",
"hash":"b16c13f8b2f6e43d583689287aaa8ca87181d037df8083c9d678e34a23983750",
"formAction":"UPDATE",
"acceptorId":120,
"serviceIds":[
11111
]
}
Esempio 3: Modifica dei dati di un servizio con ID = 11111
{
"platformId":1,
"messageId":"11111111111111111111111111211254",
"messageTime":"2016-07-20T09:35:00.000",
"hash":"b16c13f8b2f6e43d583689287aaa8ca87181d037df8083c9d678e34a23983750",
"formAction":"UPDATE",
"formParams":{
"SERVICE_URL":"https://serivce-integrator-test-nowy.pl",
"COMMISSION_MODEL":{
"PLN":"4"
},
"acceptorId":120,
"serviceIds":[
11111
]
}
Esempio 4: Aggiunta di un altro negozio a un commerciante esistente con ID = 222222
{
"platformId":1,
"messageId":"22111111112411111111111111111131",
"messageTime":"2016-07-20T09:35:00.000",
"hash":"81bc2f50d4284cf4c638c4cf0ca6a07827eccf937152db151979b394a67a863d",
"formAction":"ADD_SERVICE",
"acceptorId":222222,
"formParams":{
"SERVICE_URL":"https://serivce-integrator-test.pl",
"COMMISSION_MODEL":{
"PLN":"5"
},
"IS_CARDS_ENABLED":"TRUE"
}
}
Esempio 5: registrazione del negozio nel mercato spagnolo.
{
"platformId":1,
"messageId":"22111111112411111111111111111131",
"messageTime":"2016-07-20T09:35:00.000",
"hash":"81bc2f50d4284cf4c638c4cf0ca6a07827eccf937152db151979b394a67a863d",
"formAction": "REGISTRATION",
"formParams": {
"SERVICE_NAME": "Test ES 13",
"SERVICE_URL": "https://serivce-integrator-test.pl",
"ITN_URL": "https://serivce-integrator-test.pl/itn",
"NUMERIC_TRADE": "58",
"IS_REFUNDS_ENABLED": "true",
"RETURN_URL": "https://serivce-integrator-test.pl/return",
"COMPANY_NAME": "Test ES Company",
"TAX_ID": "ES04211376N",
"CITY": "Madrid",
"COUNTRY": "ES",
"POSTAL_CODE": "28006",
"ADDRESS": "Testino 35",
"IS_CARDS_ENABLED": "true",
"ACTIVITY_KIND": "FOREIGN",
"LEGAL_FORM": "AUTONOMO",
"REGISTRATION_DATE": "2012-01-01",
"REGISTRATION_COUNTRY": "ES",
"CONTACT_EMAIL": "test@test.autopay.eu",
"PHONE": "780171556",
"NRB": "7720387252204459354426",
"STATEMENT_DESCRIPTOR": "test shop ES",
"LANGUAGE": "ES"
}
}
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
CONSIGLIO: Risposta corretta - stato http 200.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | link | SÌ | intero | Include un link generato al modulo di registrazione. |
2 | messaggioId | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio con una lunghezza di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID); il valore del campo deve essere unico all'interno dell'integratore. |
3 | formHash | SÌ | stringa | L'identificatore del link del modulo, utilizzato dall'integratore per associare un link al modulo di un determinato cliente al messaggio inviato dopo la registrazione, che informa della configurazione del servizio risultante. |
n.d. | hash | SÌ | stringa | Il valore della funzione hash, utilizzata per autenticare il messaggio, viene calcolato dalla stringa contenente i campi incollati del messaggio (concatenazione dei campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri L'ordine in cui i campi vengono concatenati segue l'ordine. |
CONSIGLIO: Risposta con messaggio di errore - stato http 400.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
n.d. | errori | SÌ/NO | Include un link generato al modulo di registrazione. | |
n.d. | campo | SÌ | stringa | Indica il campo interessato dall'errore. |
n.d. | errore | SÌ | stringa | Descrizione verbale dell'errore. |
n.d. | codiceerrore | SÌ | intero | Codice di errore: l'elenco completo degli errori è riportato di seguito. |
Esempio di risposta corretta:
{
"link": "https://integrator-form-domain/ e2287514541105a2eda2b85751e88be5998aec8c99cd83ba3073365ce1a243a1",
"hash": "f9e02e83fe50920ee2efb0d2322b6200a71f3afcc366893487ced7ad2330a610",
"messageId": "11111111111111111111111111111229",
"formHash": "e2287514541105a2eda2b85751e88be5998aec8c99cd83ba3073365ce1a243a1"
}
Esempi di risposte errate:
{
"errors": [
{
"field": "acceptorId",
"error": "Value for field acceptorId required!",
"errorCode": 6003
}
]
}
>
{
"errors": [
{
"field": "messageTime",
"error": "Message time is outdated",
"errorCode": 6016
}
]
}
>
{
"errors": [
{
"field": "hash",
"error": "Invalid hash",
"errorCode": 6000
}
]
}
Parametro | Codice di errore | Descrizione |
---|---|---|
hash | 6000 | Hashing errato. |
messaggioId | 6001 | Valore del parametro messaggioId non è unico. |
acceptorId | 6002 | È stato specificato un parametro acceptorIdche non è consentito. |
acceptorId | 6003 | Parametro acceptorId non è indicato ed è necessario. |
serviceId | 6004 | È stato specificato un parametro serviceIdche non è consentito. |
acceptorId | 6005 | Accettore con il valore specificato Id non esiste. |
serviceId | 6006 | Servizio con dichiarazione Id non esiste. |
ID servizio | 6007 | Parametro ID servizio contiene più o meno di un elemento. |
ID servizio | 6008 | Il negozio è in fase di revisione, al momento non è possibile effettuare un'altra modifica. |
formParams | 6009 | Per il modulo di modifica vengono forniti parametri aggiuntivi che non sono consentiti. |
formParams | 6010 | La richiesta di un link per la registrazione del servizio ha fornito parametri sconosciuti. |
formParams | 6011 | La richiesta di un link di registrazione non specificava il parametro richiesto. |
formParams | 6012 | Nella richiesta di un link di registrazione, il formato del parametro non era corretto. |
formParams | 6013 | La richiesta di un link alla registrazione era errata Modello di Commissione. |
formParams | 6014 | Nella richiesta del link di registrazione è stata fornita una valuta non supportata. |
messaggioTempo | 6015 | Formato errato della data inviata nella richiesta di collegamento al modulo. |
messaggioTempo | 6016 | La data inviata nella richiesta di collegamento al modulo non è al di fuori dell'intervallo accettabile. |
piattaformaId | 6017 | Parametro piattaformaId non è indicato ed è necessario. |
messaggioId | 6018 | Parametro messaggioId non è indicato ed è necessario. |
messaggioId | 6019 | Valore del parametro messaggioId ha una lunghezza errata. |
formAzione | 6020 | Valore del parametro non consentito formAzione. |
messaggioTempo | 6021 | Parametro messaggioTempo non è indicato ed è necessario. |
hash | 6022 | Il parametro hash non è specificato ed è obbligatorio. |
hash | 6023 | È stato specificato un valore errato per il parametro hash. |
formAzione | 6024 | Parametro formAzione non è indicato ed è necessario. |
hash | 6025 | In uno degli URL è stato specificato un protocollo non valido. Atteso HTTPS. |
intestazione | 6029 | Il parametro dell'intestazione non è specificato. |
formparams | 6030 | Il valore dato del parametro TIN non è univoco. |
formparams | 6031 | Il valore specificato del parametro SERVICE_URL non è valido. |
formparams | 6032 | È stato specificato un valore non valido per il parametro CONTACT_EMAIL. |
formparams | 6033 | È stato specificato un valore non valido per il parametro COMPLAINT_EMAIL. |
formparams | 6034 | È stato specificato un valore non valido per il parametro REPORT_EMAIL. |
formparams | 6035 | Valore errato specificato per il parametro INVOICE_EMAIL. |
formparams | 6036 | È stato specificato un valore errato per il parametro PAESE. |
formparams | 6037 | È stato specificato un valore non valido per il parametro PHONE_NUMBER. |
formparams | 6038 | Il valore del parametro ITN_URL ha una lunghezza inaccettabile. |
formparams | 6039 | Il valore del parametro RETURN_URL ha una lunghezza inaccettabile. |
formparams | 6040 | Il valore del parametro SERVICE_NAME ha una lunghezza inaccettabile. |
formparams | 6041 | È stato specificato un valore errato per il parametro LEGAL_FORM. |
formparams | 6042 | È stato specificato un valore non valido per il parametro REGISTRATION_COUNTRY. |
formparams | 6043 | È stato inserito un valore errato per il parametro LINGUA. |
formparams | 6044 | Il valore del parametro SERVICE_URL ha una lunghezza inaccettabile. |
formparams | 6045 | Valore errato specificato per il parametro TAX_ID. |
- | 6099 | Si è verificato un errore imprevisto/non specificato. |
Si tratta di un'opzione aggiuntiva offerta da Autopay nel processo di onboarding del negozio, che consente all'integratore di incorporare il modulo direttamente sul sito web dell'integratore. In questa versione della soluzione, il modulo di registrazione/modifica del negozio è ancora preparato e mantenuto sul sito di Autopay, con la differenza che il Partner attraversa l'intero processo mentre si trova sul sito dell'Integratore, evitando il reindirizzamento al dominio di Autopay. Il posizionamento del modulo sul sito dell'integratore avviene tramite un elemento HTML chiamato IFRAME. L'integratore che opta per questo tipo di soluzione dovrà inoltre implementare la funzionalità di ricezione degli eventi inviati dall'iframe di Autopay, necessaria per la corretta visualizzazione del modulo di Onboarding sul sito dell'integratore.
NOTA Autopay consiglia di incorporare il widget di onboarding in un sito dell'integratore il cui sito web sia protetto con un certificato SSL.
NOTA L'indirizzo web del modulo di Onboarding collocato nell'IFRAME sul sito di Integrator è un valore variabile (il parametro formHash nel link cambia), quindi deve essere interrogato prima di ogni visualizzazione della pagina del modulo sul sito di Integrator.
<!doctype html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Example usage of Autopay onboarding widget</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
padding: 0;
margin: 0;
}
.container {
width: 100%;
padding-left: 15px;
padding-right: 15px;
max-width: 1200px;
margin: 0 auto;
}
header {
padding: 30px 0;
border-bottom: 1px solid #ccc;
}
footer {
padding: 30px 0;
border-top: 1px solid #ccc;
}
iframe {
width: 700px;
border: 0;
}
</style>
</head>
<body>
<header>
<div class="container">
INTEGRATOR PAGE HEADER
</div>
</header>
<main>
<section>
<div class="container">
<h1>Example usage of Autopay onboarding widget</h1>
<p>integrator text before</p>
</div>
</section>
<section>
<div class="container">
<iframe id="iframe" src="?r=quot;https://adres-formularza-onboardingowego/form/<formHash>"></iframe>
</div>
</section>
<section>
<div class="container">
<p> integrator text after</p>
</div>
</section>
</main>
<footer>
<div class="container">
INTEGRATOR PAGE FOOTER
</div>
</footer>
<script type="text/javascript">
// wait for page to load everything
document.addEventListener("DOMContentLoaded', function() {
// create listener for widget events
window.addEventListener('message', (e) => {
// if event origin not matches autopay onboarding origin, then event not belongs to widget
if (!/onboarding\.autopay\.eu$/.test(e.origin) {
return;
}
// if there is no data in event or data is not string, then event is not valid
if (!e.data || typeof e.data !== 'string') {
return;
}
let messageData;
// parse event data string to JSON, if it fails, messageData will remain empty
try {
messageData = JSON.parse(e.data)
} catch (err) {}
if (!messageData) {
return;
}
// listener for HEIGHT_CHANGE event, thanks to which the iframe window is at full height and the scroll bar is not displayed
if (messageData.event === 'HEIGHT_CHANGE') {
document.getElementById('iframe').style.height = messageData.data + 'px'
}
// listener for SCROLL_TOP event, which scrolls page to iframe top, because scroll can't happen in full height iframe window
if (messageData.event === 'SCROLL_TOP') {
const scrollToPosition = window.scrollY + document.getElementById('iframe').getBoundingClientRect()['y'];
window.scrollTo({left: 0, top: scrollToPosition, behavior: 'smooth'});
}
// listener for FORM_SUCCESS event, which provides necessary data to continue onboarding process
if (messageData.event === 'FORM_SUCCESS') {
console.log('Verification links:', messageData.data.verificationLinks)
}
})
})
</script>
</body>
</html>
Il reindirizzamento del cliente può avvenire direttamente dopo la corretta registrazione/modifica del negozio o può essere reso disponibile sulla pagina con un ringraziamento sotto forma di link.
Una volta che il cliente ha inviato il modulo e finalizzato il processo di registrazione/modifica, l'AP deve inviare all'integratore i dati di configurazione del servizio e i link di verifica. Ciò può avvenire in diversi modi. I canali di invio vengono concordati con l'integratore durante l'integrazione.
È possibile fornire le informazioni di cui sopra scambiando messaggi tramite tecnologia REST, Web-Services o inviando messaggi via e-mail (sotto forma di file protetto da password).
Ciascuno dei canali di invio ha un proprio sistema di rinnovo in caso di fallimento del tentativo di invio di informazioni all'integratore.
Per motivi di sicurezza, si suggerisce che lo scambio di informazioni sui dati di configurazione venga effettuato utilizzando l'API REST (predefinita) o i Web-Services su un tunnel IPSec compilato o filtrando gli indirizzi IP.
Un campo viene utilizzato per associare un messaggio ICN (ricevuto dall'integratore) a una specifica
registrazione del cliente dal modulo. formHashche viene
inviato sia nel messaggio ICN sia in risposta alla richiesta di collegamento al modulo
. Ciò garantisce che l'integratore disponga di informazioni per
quale registrazione ha ricevuto i dati di configurazione nel messaggio ICN.
Lo scambio di messaggi tra l'AP e il Servizio partner che implementa la funzionalità di aggiunta e modifica dei Servizi partner avviene tramite utilizzando l'API REST. I messaggi vengono inviati in formato JSON.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | acceptorId | SÌ | intero | Id dell'accettatore. |
2 | serviceId | SÌ | intero | Servizio id. |
3 | chiave del servizio | SÌ | stringa | Il sale hash assegnato al servizio. Con il suo aiuto, l'integratore genererà l'hash utilizzato nei messaggi relativi al processo di pagamento e alla fatturazione della transazione. |
4 | link | SÌ | stringa | Collegamento al trasferimento di verifica. Nella comunicazione fornita come elenco di collegamenti agli oggetti collegamenti di verifica. Se vengono passati più link di verifica, l'ordine di calcolo dell'hash deve corrispondere all'ordine in cui i link appaiono nel messaggio. |
n.d. | hash | SÌ | intero | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri. L'ordine in cui i campi sono concatenati segue l'ordine in cui appaiono nell'elenco dei parametri. Esempio di calcolo: SHA256(valore_accettorevalore_ serviceIdvalue_serviceKeyworth_link1value_link2salt_to_hash) |
n.d. | collegamenti di verifica | NO | Oggetto che memorizza un elenco di parametri relativi ai collegamenti di verifica. | |
n.d. | valuta | NO | stringa | La valuta a cui si riferisce il link di verifica. |
n.d. | pannelloLogin | NO | stringa | Accesso del cliente al pannello di amministrazione. |
n.d. | panelAddress | NO | stringa | URL del pannello di amministrazione. |
n.d. | formHash | SÌ | stringa | L'identificatore del link del modulo, utilizzato dall'integratore per associare un link al modulo di un determinato cliente al messaggio inviato dopo la registrazione, che informa della configurazione del servizio risultante. |
n.d. | metodo | NO | stringa | Informazioni sul tipo di modulo per cui è stata inviata la configurazione. Valori accettabili: REGISTRAZIONE AGGIORNAMENTO ADD_SERVICE |
Esempio 1.
{
"acceptorID":11111,
"serviceID":22222,
"serviceKey":"sa22a2729462f643cf4c989dddcf226b99b3a6bda11db43a433ab31a7ec2abe925",
"hash":"580a285b9bf95e60d4eaeb470d32858a5f0191a2a51b40a18ee7612fa9ced187",
"verificationLinks ":[
{
"link":"sampleLink",
"currency":"PLN"
}
],
"panelLogin":"sample panel login",
"panelPassword":"sample panel password",
"panelAddress":"sample panel address",
"formHash":"sample form hash",
"method":"REGISTER"
}
nome | richiesto | tipo | descrizione |
---|---|---|---|
risultatoStato | SÌ | stringa | Stato della risposta. Valori accettabili: OK ERRORE |
descrizione | SÌ | stringa | Descrizione aggiuntiva per la risposta. |
{
"resultStatus":"OK",
"description":"sample description"
}
Lo scambio di messaggi tra l'AP e il Servizio partner che esegue la funzionalità di aggiunta e modifica dei Servizi partner avviene utilizzando la tecnologia Web-Services del protocollo SOAP.
Il servizio fornisce la sua definizione sotto forma di un documento WSDL (Web Service Definitions Language), fornito dall'AP durante l' integrazione.
<xsd:element name="InstantConfigurationNotificationRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:elementname="InstantConfigurationNotification" type="tns: InstantConfigurationNotification "/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name=" InstantConfigurationNotification ">
<xsd:sequence>
<xsd:sequence>
<xsd:element name="AcceptorID" type="xsd:int"/>
<xsd:element name="ServiceID" type="xsd:int"/>
<xsd:element name="ServiceKey" type="xsd:string"/>
<xsd:element name="Hash" type="xsd:string"/>
<xsd:element minOccurs="0" name="VerificationLinks" type="tns:VerificationLinks"/>
<xsd:element minOccurs="0" name="PanelLogin" type="xsd:string"/>
<xsd:element minOccurs="0" name="PanelPassword" type="xsd:string"/>
<xsd:element minOccurs="0" name="PanelAddress" type="xsd:string"/>
<xsd:element name="FormHash" type="xsd:string"/>
<xsd:element name="Method" type="tns:Method"/>
</xsd:sequence>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="VerificationLink">
<xsd:sequence>
<xsd:element name="Currency" type="xsd:string"/>
<xsd:element name="Link" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="VerificationLinks">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="VerificationLink" type="tns:VerificationLink"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="Method">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="REGISTER"/>
<xsd:enumeration value="UPDATE"/>
<xsd:enumeration value="ADD_SERVICE"/>
</xsd:restriction>
</xsd:simpleType>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | AcceptorId | SÌ | intero | Id dell'accettatore. |
2 | ID servizio | SÌ | intero | Servizio id. |
3 | Chiave di servizio | SÌ | stringa | Il sale hash assegnato al servizio. Con il suo aiuto, l'integratore genererà l'hash utilizzato nei messaggi relativi al processo di pagamento e alla fatturazione della transazione. |
4 | Collegamento | NO | stringa | Collegamento al trasferimento di verifica. |
n.d. | Hash | SÌ | intero | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri. L'ordine in cui i campi sono concatenati segue l'ordine in cui appaiono nell'elenco dei parametri. Esempio di enumerazione: SHA256(valore_accettorevalore_servizioValore_servizioKeyworth_link1valore_link2salto_a_hash) |
n.d. | Link di verifica | NO | stringa | Oggetto che memorizza un elenco di oggetti VerificaLink su Link di verifica. |
n.d. | VerificaLink | NO | stringa | Oggetto che memorizza i parametri relativi ai Collegamenti di verifica. |
n.d. | Collegamento | NO | stringa | Collegamento al trasferimento di verifica. |
n.d. | Valuta | NO | stringa | Valuta a cui si applica il Collegamento di verifica. |
n.d. | PannelloLogin | NO | stringa | Accesso del cliente al pannello di amministrazione. |
n.d. | PannelloPassword | NO | stringa | Password temporanea del cliente per il pannello di amministrazione. |
n.d. | Indirizzo del pannello | NO | stringa | Password temporanea URL del pannello amministrativo. |
n.d. | FormHash | SÌ | stringa | L'identificatore del link del modulo, utilizzato dall'integratore per associare un link al modulo di un determinato cliente al messaggio inviato dopo la registrazione, che informa della configurazione del servizio risultante. |
n.d. | Metodo | NO | stringa | Informazioni sul tipo di modulo per cui è stata inviata la configurazione. Valori accettabili: REGISTRAZIONE AGGIORNAMENTO ADD_SERVICE |
Esempio 1.
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2: InstantConfigurationNotificationRequest
xmlns:ns2="http://integrator/ws/">
< InstantConfigurationNotification>
<AcceptorID>11111</AcceptorID>
<ServiceID>22222</ServiceID>
<ServiceKey>22a2729462f643cf4c989dddcf226b99b3a6bda11db43a433ab31a7ec2abe925</ServiceKey>
<Hash>580a285b9bf95e60d4eaeb470d32858a5f0191a2a51b40a18ee7612fa9ced187</Hash>
<VerificationLinks>
<VerificationLink>
<Currency>PLN</Currency>
<Link>sampleLink</Link>
</VerificationLink>
</VerificationLinks>
<FormHash>generated_hash</FormHash>
<Method>REGISTER</Method>
</ InstantConfigurationNotification>
</ns2: InstantConfigurationNotificationRquest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<xsd:element name=" InstantConfigurationNotificationResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Result" type="tns:ResultStatus"/>
<xsd:element name="Description" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
>
<xsd:simpleType name="ResultStatus">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="OK"/>
<xsd:enumeration value="ERROR"/>
</xsd:restriction>
</xsd:simpleType>
nome | richiesto | tipo | descrizione |
---|---|---|---|
RisultatoStato | SÌ | stringa | Stato della risposta. Valori accettabili: OK ERRORE |
Descrizione | SÌ | stringa | Descrizione aggiuntiva per la risposta. |
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2: InstantConfigurationNotificationResponse
xmlns:ns2="http://integrator/ws/">
<Result>OK</Result>
<Description>sample description</Description>
</ns2: InstantConfigurationNotificationResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Le informazioni sul servizio vengono inviate all'indirizzo e-mail specificato dall'integratore
sotto forma di file protetto da password. Il numero di telefono a
cui inviare le password viene concordato con l'integratore durante l'integrazione di
.
Il sistema Autopay consente all'integratore di essere informato delle modifiche ai dati AML del negozio. In questo modo l'integratore può aggiornare i dati modificati in Autopay e presentarli al partner.
Ciò è stato realizzato inviando messaggi in formato JSON con il metodo HTTP POST. Il corretto funzionamento del servizio richiede l'implementazione di un metodo dal lato dell'integratore per accettare il suddetto messaggio.
La struttura del messaggio inviato all'integratore è suddivisa in tre nodi principali, come mostrato nella tabella seguente.
Nome del nodo | descrizione |
---|---|
intestazione della revisione | Oggetto che memorizza i dati di una revisione, cioè di una modifica apportata al sistema da un cliente nel sistema dell'integratore. |
dataHeader | Oggetto che memorizza le informazioni per autenticare un messaggio |
dati correnti | Oggetto che contiene informazioni sui dati antiriciclaggio attuali del negozio sul lato Autopay. Si tratta degli ultimi dati verificati positivamente nel sistema Autopay. Se il messaggio è relativo a una registrazione che non ha ricevuto uno stato di verifica positivo nel campo revisionHeader.autopayVerificationStatus, allora currentData = null (non ci sono dati verificati per questo servizio/accettore nel sistema). |
Esempio 1. Messaggio con stato di verifica positivo
{
"revisionHeader":{
"orderId":"123_2d87806818cf319d7127ffb",
"revisionId":"03d5627b-b9fe-40c0-ae32-5c9620d804ee",
"autopayVerificationStatus":"POSITIVE"
},
"dataHeader":{
"acceptorId":345,
"dataTime":"2024-01-16T 09:16:13",
"serviceId":123,
"hash":"35a56e960b4a4650b727b098bafd1912cf4e3012c8927ec29b3af6408bc99199"
},
"currentData":{
"company":{
"name":"Testowa firma",
"address":{
"address":"ul Testowa 77",
"postalCode":"80-462",
"city":"Gdańsk",
"country":"PL",
"street":null,
"houseNumber":null,
"flatNumber":null
},
"nip":"8219663675",
"regon":"955459555",
"edg":"123",
"krs":"1234567890",
"phone":{
"currentValue":"+48123456789",
"waitingValue":null
},
"representingPersons":[
{
"personName":{
"firstName":"Jan",
"lastName":"Kowalski"
},
"pesel":"PL",
"documentData":{
"number":"BKI332498",
"type":"ID",
"expirationDate":"2030-01-01",
"country":"PL"
},
"citizenship":"32061970611",
"birthData":{
"date":"1932-06-19",
"country":"PL"
}
}
],
"activityKind":"SP_ZOO",
"beneficials":[
{
"personName":{
"firstName":"Piotr",
"lastName":"Nowak"
},
"citizenship":"PL",
"pesel":"32061970611",
"birthDate":"1932-06-19"
}
],
"registrationDate":"2000-01-01",
"plenipotentiary":{
"personName":{
"firstName":"Jan",
"lastName":"Kowalski"
},
"citizenship":"PL",
"birthData":{
"date":"1932-06-19",
"country":"PL"
},
"pesel":"32061970611",
"documentData":{
"number":"BKI332498",
"type":"ID",
"expirationDate":"2030-01-01",
"country":"PL"
}
},
"physicalPerson":null,
"partners":[
{
"personName":{
"firstName":"Jan",
"lastName":"Kowalski"
},
"citizenship":"PL",
"pesel":"32061970611",
"birthData":{
"date":"1932-06-19",
"country":"PL"
},
"documentData":{
"number":"BKI332498",
"type":"ID",
"expirationDate":"2030-01-01",
"country":"PL"
}
}
]
},
"service":{
"name":"Testowy sklep",
"serviceUrl":"https://test.autopay.eu",
"urlITN":"https://test.autopay.eu/itn",
"returnUrl":"https://test.autopay.eu/return",
"trade":{
"id":1,
"name":"Alkohol"
},
"invoiceEmail":"invoice@test.autopay.eu",
"contactEmail":{
"currentValue":"contact@test.autopay.eu",
"waitingValue":null
},
"complaintEmail":"complaint@test.autopay.eu",
"reportEmail":"report@test.autopay.eu",
"balanceDetails":[
{
"settlementNRB":"59124053967877760136628953",
"currency":"PLN",
"swiftCode":null,
"commissionModel":2,
"regulationId":12
}
]
}
}
}
Esempio 2. Messaggio con stato di verifica positivo per un negozio nel mercato spagnolo
{
"revisionHeader":{
"orderId":"123_2d87806818cf319d7127ffb",
"revisionId":"03d5627b-b9fe-40c0-ae32-5c9620d804ee",
"autopayVerificationStatus":"POSITIVE"
},
"dataHeader":{
"acceptorId":345,
"dataTime":"2024-01-16T 09:16:13",
"serviceId":123,
"hash":"35a56e960b4a4650b727b098bafd1912cf4e3012c8927ec29b3af6408bc99199"
},
"currentData":{
"company":{
"name":"Test Company",
"address":{
"address":"ul Testinio 77",
"postalCode":"80-462",
"city":"Madrid",
"country":"ES",
"street":null,
"houseNumber":null,
"flatNumber":null
},
"nip":"1215505438",
"regon":null,
"edg":null,
"krs":null,
"phone":{
"currentValue":"123456789",
"waitingValue":null
},
"representingPersons":[
{
"personName":{
"firstName":"Joan",
"lastName":"Martinez"
},
"pesel":null,
"documentData":{
"number":"BKI332498",
"type":"ID",
"expirationDate":"2030-01-01",
"country":"ES"
},
"citizenship":"ES",
"birthData":{
"date":"1932-06-19",
"country":"ES"
}
}
],
"activityKind":"FOREIGN",
"beneficials":[
{
"personName":{
"firstName":"Roberto",
"lastName":"Marques"
},
"citizenship":null,
"pesel":null,
"birthDate":null
}
],
"registrationDate":"2000-01-01",
"plenipotentiary":null,
"physicalPerson":null,
"partners":[],
"language":"ES",
"taxId": "1215505438",
"registrationCountry":"ES",
"legalForm":"AUTONOMO",
"tradeRegisterName":"NO_REGISTER"
},
"service":{
"name":"Test shop",
"serviceUrl":"https://test.autopay.eu",
"urlITN":"https://test.autopay.eu/itn",
"returnUrl":"https://test.autopay.eu/return",
"trade":{
"id":1,
"name":"Alkohol"
},
"invoiceEmail":"invoice@test.autopay.eu",
"contactEmail":{
"currentValue":"contact@test.autopay.eu",
"waitingValue":null
},
"complaintEmail":"complaint@test.autopay.eu",
"reportEmail":"report@test.autopay.eu",
"balanceDetails":[
{
"settlementNRB":"59124053967877760136628953",
"currency":"EUR",
"swiftCode":"XXXXXXYY",
"commissionModel":2,
"regulationId":12
}
]
}
"addons": {
"service": {
"statementDescriptor": "shop name"
}
}
}
}
Esempio 3. Messaggio con stato di verifica positivo per un negozio nel mercato spagnolo
{
"revisionHeader":{
"orderId":"123_2d87806818cf319d7127ffb",
"revisionId":"03d5627b-b9fe-40c0-ae32-5c9620d804ee",
"autopayVerificationStatus":"POSITIVE",
"autopayVerificationStatusReasons": []
},
"dataHeader":{
"acceptorId":345,
"dataTime":"2024-01-16T 09:16:13",
"serviceId":123,
"hash":"35a56e960b4a4650b727b098bafd1912cf4e3012c8927ec29b3af6408bc99199"
},
"currentData":{
"company":{
"name":"Test Company",
"address":{
"address":"ul Testinio 77",
"postalCode":"80-462",
"city":"Madrid",
"country":"ES",
"street":null,
"houseNumber":null,
"flatNumber":null
},
"nip":"1215505438",
"regon":null,
"edg":null,
"krs":null,
"phone":{
"currentValue":"123456789",
"waitingValue":null
},
"representingPersons":[
{
"personName":{
"firstName":"Joan",
"lastName":"Martinez"
},
"pesel":null,
"documentData":{
"number":"***",
"type":"***",
"expirationDate":null,
"country":"***"
},
"citizenship":"ES",
"birthData":{
"date":"1932-06-19",
"country":"ES"
}
}
],
"activityKind":"FOREIGN",
"beneficials":[
{
"personName":{
"firstName":"Roberto",
"lastName":"Marques"
},
"citizenship":null,
"pesel":null,
"birthDate":null
}
],
"registrationDate":"2000-01-01",
"plenipotentiary":null,
"physicalPerson":null,
"partners":[],
"language":"ES",
"taxId": "1215505438",
"registrationCountry":"ES",
"legalForm":"AUTONOMO",
"tradeRegisterName":"NO_REGISTER"
},
"service":{
"name":"Test shop",
"serviceUrl":"https://test.autopay.eu",
"urlITN":"https://test.autopay.eu/itn",
"returnUrl":"https://test.autopay.eu/return",
"trade":{
"id":58,
"name":"Usługi medyczne"
},
"invoiceEmail":"invoice@test.autopay.eu",
"contactEmail":{
"currentValue":"contact@test.autopay.eu",
"waitingValue":null
},
"complaintEmail":"complaint@test.autopay.eu",
"reportEmail":"report@test.autopay.eu",
"balanceDetails":[
{
"settlementNRB":"ES1111111111111111111111",
"currency":"EUR",
"swiftCode":"XXXXXXYY",
"commissionModel":2,
"regulationId":12
}
]
}
"addons": {
"service": {
"statementDescriptor": "shop name"
}
}
}
}
Nome del campo | Descrizione |
---|---|
revisionHeader.revisionId | revisionHeader.revisionId |
revisionHeader.autopayVerificationStatus | Stato di verifica sul lato Autopay dei dati inviati come parte della revisione. Questo stato NON si applica ai dati del nodo CurrentData. |
revisionHeader.autopayVerificationStatusReasons | elenco di motivi da compilare nel caso in cui autopayVerificationStatus = NEGATIVE o NEED_FEEDBACK |
revisionHeader.autopayVerificationStatusReasons.reason | tipo di motivo dello stato di verifica NEGATIVO o NEED_FEEDBACK. Valori accettabili: WRONG_ACTIVITY_KIND - forma giuridica errata, WRONG_ACCOUNT_NUMBER - conto bancario non valido, WRONG_ADDRESS - indirizzo incompatibile, WRONG_URL_LINK - URL non funzionante, WRONG_DATA_ON_URL_LINK - i dati dell'oggetto sul sito web del medico non sono validi, WRONG_REPRESENTATIVE_BENEFICIARY_DATA - dati errati del rappresentante/beneficiario, ACTIVITY_KIND_INACTIVE - attività sospesa |
revisionHeader.autopayVerificationStatusReasons.description | descrizione del motivo dello stato di verifica NEGATIVO o NEED_FEEDBACK. La descrizione può essere inviata in polacco, inglese, spagnolo o italiano, a seconda della configurazione dell'integratore. |
revisionHeader.orderId | identificatore di pagamento, se presente, durante la creazione della revisione (azione di registrazione o aggiornamento dei dati) |
dataHeader.dataTime | data e ora dei dati scaricati dal sistema Autopay |
dataHeader.serviceId | id del servizio interessato |
dataHeader.acceptorId | id dell'interessato |
dataHeader.hash | SHA256(acceptorId|dataTime|serviceId|secret_key) eg: SHA256(345|2024-01-16T08:08:51.271|123|secret_key) |
currentData.company | dati dell'azienda che registra il pagamento, principalmente dati antiriciclaggio |
currentData.service | dati di configurazione del servizio |
È possibile che alcuni dei dati di contatto richiedano una verifica da parte del cliente. I campi che potrebbero richiedere una verifica sono:
currentData.company.phone
currentData.service.contactEmail
Ciascuno di questi campi è rappresentato come un oggetto:
{
"currentValue":"wartość",
"waitingValue":null
}
valore corrente - valore attualmente in vigore nel sistema
waitingValue - in attesa di verifica da parte del client. In una situazione in cui il client ha inserito diversi valori
senza verificarne nessuno, il campo waitingValue conterrà l'ultimo. Un valore nullo significa che nessun dato
è in attesa di verifica da parte del client.
Questo titolo può avere diverse forme:
Completato:
"revisionHeader":{
"revisionId":"046b8dcf-3581-4079-813c-34d0a2871fae",
"autopayVerificationStatus":"PENDING",
"orderId":"151007_2d87806818cf319d7127ffb"
}
Tale intestazione si verifica quando la transazione di verifica di un cliente deve essere pagata durante un'azione avviata dall'integratore.
Ordine vuoto:
"revisionHeader":{
"revisionId":"046b8dcf-3581-4079-813c-34d0a2871fae",
"autopayVerificationStatus":"PENDING",
"orderId":null
}
Questa forma di intestazione si verifica quando l'azione dell'integratore genera una verifica non sensibile, ossia che non richiede il pagamento della transazione di verifica.
Nessun revisionHeader:
"revisionHeader":null
Il revisionHeader non si verificherà quando una modifica all'interno del servizio/accettante viene inizializzata da Autopay ad esempio come risultato di una verifica periodica dei dati.
Il campo indica lo stato di verifica della revisione indicata. Valori possibili per questo campo:
IN ATTESA - revisione in corso
POSITIVO - la revisione è stata accettata
NEGATIVO - la revisione è stata respinta
BISOGNO DI UN RISCONTRO - Informazioni/azioni richieste sul lato client
Valore del campo revisionHeader.autopayVerificationStatus indica lo stato di verifica da parte di Autopay e non è legato alla verifica dei dati di contatto effettuata dal cliente.
Valore del campo revisionHeader.autopayVerificationStatus non si applica ai dati del nodo currentData, ma è lo stato della revisione caricata.
Stato di verifica negativo:
"revisionHeader":{
"orderId":"123_2d87806818cf319d7127ffb",
"revisionId":"03d5627b-b9fe-40c0-ae32-5c9620d804ee",
"autopayVerificationStatus":"NEGATIVE",
"autopayVerificationStatusReasons": [
{
"reason": "ACTIVITY_KIND_INACTIVE",
"description": "działalność zawieszona"
},
{
"reason": "WRONG_REPRESENTATIVE_BENEFICIARY_DATA",
"description": "błędne dane reprezentanta/beneficjenta"
}
]
}
Tale intestazione può verificarsi se il negozio riceve uno stato di verifica NEGATIVO o NEED_FEEDBACK dopo la verifica da parte di Autopay. L'invio di un nodo aggiuntivo autopayVerificationStatusReasons è facoltativo e dipende dalla configurazione dell'integratore.
{
"personName":{
"firstName":"Jan",
"lastName":"Kowalski"
},
"pesel":"69010583482",
"documentData":{
"number":"BKI332498",
"type":"ID",
"expirationDate":"2030-01-01",
"country":"PL"
},
"citizenship":"PL",
"birthData":{
"date":"1951-06-19",
"country":"PL"
}
}
Campo currentData.company.address
Il campo dell'indirizzo, a seconda dei dati memorizzati in Autopay, può assumere due forme:
"address":{
"address":"ul Testowa 77/3",
"postalCode":"80-462",
"city":"Gdańsk",
"country":"PL",
"street":null,
"houseNumber":null,
"flatNumber":null
}
"address":{
"address":null,
"postalCode":"80-462",
"city":"Gdańsk",
"country":"PL",
"street":"ul Testowa",
"houseNumber":77,
"flatNumber":3
}
Campi aggiuntivi
"language":"ES",
"taxId": "1215505438",
"registrationCountry":"ES",
"legalForm":"AUTONOMO",
"tradeRegisterName":"NO_REGISTER"
Questi sono i campi inviati in caso di integrazione in un mercato diverso da quello polacco.
"statementDescriptor": "shop name"
Un campo che contiene il nome del Punto vendita da visualizzare sugli estratti conto (il servizio di trascrizione del valore di questo campo sugli estratti conto non è attualmente disponibile).
Il processo di messa a disposizione del negozio delle carte di pagamento richiede la verifica del negozio sia dal lato AP che dal lato dell'amministratore della carta di pagamento, motivo per cui l'avvio della richiede solitamente più tempo dell'attivazione del negozio stesso.
Il sistema consente di inviare una notifica istantanea quando la possibilità di effettuare pagamenti con carte di pagamento in negozio è abilitata o disabilitata, per garantire la coerenza della configurazione del negozio tra la piattaforma integratore e l'AP. Ciò è stato realizzato inviando un messaggio in formato JSON tramite l'API REST.
NOTE: Il corretto funzionamento del servizio richiede l'implementazione sul lato dell'integratore di un metodo per accettare il suddetto messaggio.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceId | SÌ | intero | Un identificativo univoco permanente del negozio assegnato dal Sistema di pagamento online. |
2 | ordineId | SÌ | stringa | L'identificatore univoco della richiesta fornito dall'AP. Sintassi orderId: valore diserviceId_uniquelabel |
3 | carteStato | SÌ | stringa | Stato del lancio dei pagamenti con carta nel negozio. Valori disponibili: ATTIVO INATTIVO |
n.d. | hash | SÌ | stringa | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri. L'ordine in cui i campi vengono concatenati segue l'ordine in cui compaiono nell'elenco dei parametri. Una chiave, condivisa tra il Sistema di piattaforma e il sistema di pagamento online, viene incollata alla fine della stringa di cui sopra. Dalla stringa risultante viene calcolato il valore della funzione di hash SHA256, che costituisce il valore del campo Hash del messaggio. Hash = SHA256(valori_messaggio + chiave condivisa) |
n.d. | valute | SÌ | stringa | Elenco delle valute per le quali lo stato di attivazione dei pagamenti con carta è stato modificato |
Esempio.
{
"serviceId":"1111111",
"orderId":"22222",
"cardsStatus":"ACTIVE",
"hash":"81eb70b8f2c4576bfb375a7ccbfcfb196b235556bcc329aa40a3dc8bfd",
"currencies":["PLN","EUR","GBP","USD"]
}
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceId | SÌ | intero | Un identificativo univoco permanente del negozio assegnato dal Sistema di pagamento online. |
2 | ordineId | SÌ | stringa | L'identificatore univoco della richiesta fornito dall'AP. |
3 | conferma | SÌ | stringa | Stato di conferma: - CONFERMATO - NON CONFERMATO |
n.d. | hash | SÌ | stringa | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri. L'ordine in cui i campi vengono concatenati segue l'ordine in cui compaiono nell'elenco dei parametri. Una chiave, condivisa tra il Sistema di piattaforma e il sistema di pagamento online, viene incollata alla fine della stringa di cui sopra. Dalla stringa risultante viene calcolato il valore della funzione di hash SHA256, che costituisce il valore del campo Hash del messaggio. Hash = SHA256(valori_messaggio + chiave condivisa) |
Esempio.
{
"serviceId":"1111111",
"orderId":"22222",
"confirmation":"CONFIRMED",
"hash":"81eb70bcb8f2c4576bfb375a7ccbfcfb196b2355986556b29aa40a3dc8bfd"
}
Il sistema consente di inviare una notifica immediata all'integratore quando i canali di pagamento indicati vengono attivati e disattivati in un determinato negozio. Ciò è stato realizzato inviando un messaggio in formato JSON. Il corretto funzionamento del servizio richiede l'implementazione di un metodo da parte dell'integratore per ricevere tale messaggio.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceId | SÌ | intero | Un identificativo univoco permanente del negozio assegnato dal Sistema di pagamento online. |
2 | ordineId | SÌ | stringa | Un identificativo unico della richiesta assegnato da Autopay. |
- | gatewayConfigurazioni | SÌ | Oggetto che memorizza un elenco di canali di pagamento per i quali si è verificata una modifica dell'attività. | |
3 | gatewayConfiguration.gatewayId | SÌ | intero | Identificatore del canale di pagamento. |
4 | gatewayConfiguration.active | SÌ | booleano | Informazioni sull'attivazione o disattivazione del canale di pagamento indicato. |
- | hash | SÌ | stringa | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). I valori dei campi sono incollati insieme, senza i nomi dei parametri. L'ordine in cui i campi sono concatenati segue l'ordine in cui appaiono nell'elenco dei parametri. Una chiave, condivisa tra il Sistema di piattaforma e il sistema di pagamento online, viene incollata alla fine della stringa di cui sopra. Dalla stringa risultante viene calcolato il valore della funzione di hash SHA256, che costituisce il valore del campo Hash del messaggio. |
NOTE: Se durante l'integrazione con il Partner è stato stabilito un separatore per il conteggio degli hash per i messaggi, questo verrà utilizzato. In questo caso, il conteggio degli hash seguirà lo schema:
Hash = SHA256(messaggio_campo_1_valore + delimitatore + messaggio_campo_2_valore + delimitatore + messaggio_campo_3_valore + delimitatore + [campi consecutivi separati da delimitatore]+ chiave_condivisa)
Esempio:
{
"serviceId": 111111,
"gatewayConfigurations": [
{
"gatewayId": 101,
"active": false
},
{
"gatewayId": 100,
"active": true
}
],
"orderId": "47781_0a25c3c9-e0a7-4bfa-9bdf-75ca75c2569d",
"hash": "5f3dfeec2cea228e2f4db8840fdc0e4d91d224da195618c0c67c6a7ea53c1832"
}
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceId | SÌ | intero | Un identificativo univoco permanente del negozio assegnato dal Sistema di pagamento online. |
2 | ordineId | SÌ | stringa | Un identificativo unico della richiesta assegnato da Autopay. |
3 | conferma | SÌ | stringa | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri. L'ordine in cui i campi vengono concatenati segue l'ordine in cui compaiono nell'elenco dei parametri. Una chiave, condivisa tra il Sistema di piattaforma e il sistema di pagamento online, viene incollata alla fine della stringa di cui sopra. Dalla stringa risultante viene calcolato il valore della funzione di hash SHA256, che costituisce il valore del campo Hash del messaggio. Hash = SHA256(valori_messaggio + chiave condivisa) |
Esempio:
Przykład.
{
"serviceId":"1111111",
"orderId":"22222",
"confirmation":"CONFIRMED",
"hash":"81eb70bcb8f2c4576bfb375a7ccbfcfb196b2355986556b29aa40a3dc8bfd"
}
Messaggio per ottenere i dati del Partner aggiornati nel Sistema.
<xsd:element name="GetAMLCompanyDataReq">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="AcceptorID" type="xsd:int"/>
<xsd:element name="Header" type="tns:Header"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
nome del campo | tipo | descrizione |
---|---|---|
AcceptorID | intero | ID commerciante. |
Intestazione | intestazione | Oggetto utilizzato per fornire dati di intestazione relativi alla sicurezza della comunicazione e alla correttezza dei dati trasmessi. |
<xsd:complexType name="Header">
<xsd:sequence>
<xsd:element name="PlatformId" type="xsd:string"/>
<xsd:element name="MessageTime" type="xsd:dateTime"/>
<xsd:element name="RequestId" type="xsd:long"/>
<xsd:element name="Hash" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID piattaforma | SÌ | stringa | L'identificativo univoco permanente della piattaforma assegnato dal sistema di pagamento online. |
2 | MessaggioTempo | SÌ | dateTime | Tempo di generazione del messaggio, i messaggi con un tempo impostato successivo a 5 minuti rispetto all'ora del server del Sistema di pagamento online saranno rifiutati. È consigliabile impostare l'ora del messaggio now()-1min, nel caso in cui l'ora dei server non sia sincronizzata. Esempio: 2016-07-20T09:35:00.000 (messaggio generato in data 2016-07-20 09:36:00). |
3 | ID richiesta | SÌ | lungo | L'identificativo univoco della richiesta all'interno della Piattaforma fornito dalla parte che ha avviato il messaggio in questione. |
n.d. | Hash | SÌ | stringa{64} | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri. L'ordine in cui i campi vengono concatenati segue l'ordine in cui compaiono nell'elenco dei parametri. Una chiave, condivisa tra il Sistema di piattaforma e il sistema di pagamento online, viene incollata alla fine della stringa di cui sopra. Dalla stringa risultante viene calcolato il valore della funzione di hash SHA256, che costituisce il valore del campo Hash del messaggio. Hash = SHA256(valori_messaggio + chiave condivisa) Esempio: SHA256(11112016-07-20T09:35:00. 000111222333aaabbbccc) Dove: PlatfromId = 1111 MessageTime = 2016-07-20T09:35:00.000 RequestId = 111222333 Chiave condivisa = aaabbbccc |
Il messaggio è una risposta a GetAMLCompanyDataResp.
<xsd:element name="GetAMLCompanyDataResp">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Result" type="xsd:string"/>
<xsd:element name="ErrorStatus" type="xsd:string" nillable="true"/>
<xsd:element name="Company" type="tns:Company"/>
<xsd:element name="isServiceActive" type="xsd:boolean" nillable="true"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
nome del campo | tipo | descrizione |
---|---|---|
Risultato | stringa | OK - operazione completata con successo ERRORE - errore durante la modifica di un partner |
Stato di errore | stringa | Stato di errore. |
Azienda | Azienda | Oggetto con i dati dell'azienda partner. |
isServiceActive | booleano | Informazioni sul fatto che il servizio sia attivo. |
CONSIGLIO: Tipo di messaggio Aziendae i suoi singoli componenti
data-deeplation/> sono descritti in dettaglio nella sezione Tipi di composito.
Il sistema consente all'integratore di recuperare l'elenco completo dei regolamenti corrispondenti alle percentuali di commissione disponibili per l'integratore (CommissionModel) o un elenco specifico di regolamenti limitato dai filtri specificati nei parametri di richiesta. A tale scopo, richiamare il metodo getLegalData (https://domena_BMAutopay/getLegalData) con i parametri appropriati. Lo scambio di messaggi tra Autopay e la piattaforma Integrator avviene in formato JSON. Tutti i parametri vengono passati tramite il metodo POST (Content-Type: application/json). Di seguito è riportato un elenco dei parametri disponibili. L'accesso al servizio è protetto dal filtraggio degli indirizzi IP.
Ordine di hash | Nome | Richiesto | Tipo | Descrizione |
---|---|---|---|---|
. | intestazione | SÌ | Oggetto che memorizza i campi di autorizzazione del messaggio. | |
1 | piattaformaId | SÌ | intero | L'identificativo univoco permanente della piattaforma assegnato dal sistema di pagamento online. |
2 | messaggioId | SÌ | stringa{32} | un identificatore univoco della richiesta all'interno della Piattaforma fornito dalla parte che avvia il messaggio. |
3 | messaggioTempo | SÌ | dateTime | Tempo di generazione del messaggio, i messaggi con un tempo impostato successivo a 5 minuti rispetto all'ora del server del Sistema di pagamento online saranno rifiutati. È buona norma impostare l'ora del messaggio now()-1min, nel caso in cui l'ora dei server non sia sincronizzata. Esempio: 2016-07-20T09:35:00.000 (messaggio generato il 2016-07-20 09:36:00). |
- | hash | SÌ | stringa | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri. L'ordine in cui i campi vengono concatenati segue l'ordine in cui compaiono nell'elenco dei parametri. Una chiave, condivisa tra il Sistema di piattaforma e il sistema di pagamento online, viene incollata alla fine della stringa di cui sopra. Dalla stringa risultante viene calcolato il valore della funzione di hash SHA256, che costituisce il valore del campo Hash del messaggio. Hash = SHA256(campo_valore_messaggio + chiave_condivisa). |
- | filtroParametri | NO | Un oggetto che memorizza i parametri che costituiscono i filtri della richiesta. Il mancato invio dei filtri nel messaggio di richiesta ad Autopay restituirà l'elenco completo dei termini e delle condizioni disponibili all'integratore. | |
- | elenco dei modelli di commissione | NO | Elenco dei tassi di commissione per i quali devono essere restituiti i regolamenti. Specificando un particolare tasso, verranno restituiti i regolamenti corrispondenti. | |
- | elenco lingue | NO | Elenco delle lingue in cui devono essere restituiti i regolamenti. Esempio: Specificando PL si otterranno tutti i regolamenti scritti in polacco. |
Esempio.
Richiesta di un elenco di regolamenti per i tassi di commissione 1 e 2, in polacco e in inglese per la valuta PLN.
{
"header":{
"platformId":"111111",
"messageId":22222,
"messageTime":"2020-06-01 09:36:00",
"hash":"31772235489560079037848456"
},
"filterParams":{
"commissionmodelList":[
1,
2
],
"languageList":[
"PL",
"EN"
]
}
}
Risposta corretta: stato http 200.
Ordine di hash | Nome | Richiesto | Tipo | Descrizione |
---|---|---|---|---|
1 | stato | SÌ | stringa | Valore: OK - in caso di stato http 200. |
2 | messaggioId | SÌ stringa {32} | Campo che restituisce il valore dell'identificatore del messaggio di richiesta. | |
- | hash | SÌ | stringa | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri. L'ordine in cui i campi sono concatenati segue l'ordine in cui appaiono nell'elenco dei parametri. |
- | elenco dei regolamenti | SÌ | Un oggetto che memorizza un elenco di regolamenti restituiti. | |
- | regolamentoId | SÌ | intero | Identificatore di regole e regolamenti, restituito ad Autopay nei metodi RegisterCompany, UpdateCompany, UpdateService, UpdateConfiguration, che informa Autopay su quali regole e regolamenti sono stati accettati nel modulo Integrator. |
- | regolamentoLink | SÌ | stringa | Link al file dei termini e delle condizioni. |
- | modello di commissione | SÌ | intero | tasso di commissione a cui si applicano i regolamenti. |
- | lingua | SÌ | stringa | La lingua in cui sono stati scritti i regolamenti. |
- | valuta | SÌ | stringa | La valuta del tasso di commissione a cui si applicano i regolamenti. |
Risposta con messaggio di errore - stato http 400.
Ordine di hash | Nome | Richiesto | Tipo | Descrizione |
---|---|---|---|---|
errori | SÌ | Oggetto che memorizza un elenco di errori contenuti nel messaggio di richiesta. | ||
campo | SÌ | stringa | Indica il campo interessato dall'errore. | |
errore | SÌ | stringa | Descrizione verbale dell'errore. | |
codiceerrore | intero | Codice di errore - l'elenco completo degli errori è disponibile di seguito |
Esempio.
Restituzione dell'elenco dei regolamenti
{
"regulationList": [
{
"commissionModel": 1,
"language": "PL",
"regulationLink":"https://platnosci-accept.bm.pl/regulations/api/download/4eaf489b-c27f-40ac-b888-032f562077dd",
"regulationId": 41,
"currency": "PLN"
},
{
"commissionModel": 3,
"language": "PL",
"regulationLink":"https://platnosci-accept.bm.pl/regulations/api/download/70c5638e-7301-46f9-87e1-522dcff1db4e",
"regulationId": 42,
"currency": "PLN"
},
{
"commissionModel": 6,
"language": "PL",
"regulationLink":"https://platnosci-accept.bm.pl/regulations/api/download/0ef22461-7245-4501-970f-e09f2929856f",
"regulationId": 43,
"currency": "PLN"
}
],
"messageId": "22121111112411112211111311212260",
"status": "OK",
"hash": "a2bd34888537a5c91c2700f12ec4e59786b03e9d4a92ad9ffd1dc49c8c8edad2"
}
Elenco dei codici di errore
Codice di errore | Descrizione | Parametro interessato dall'errore |
---|---|---|
6000 | hash errato | hash |
6023 | Il parametro hash non è specificato, ma è necessario | hash |
6017 | Il parametro platformId non è specificato, ma è necessario. | piattaformaId |
6018 | Il parametro messageId non è specificato ma è necessario. | messaggioId |
6019 | Il valore del parametro messageId ha una lunghezza non valida. | messaggioId |
6015 | Formato della data non corretto | messaggioTempo |
6015 | La data inviata nella richiesta di collegamento al modulo non è al di fuori dell'intervallo accettabile. | messaggioTempo |
6015 | Il parametro messageTime non è specificato ed è obbligatorio. | messaggioTempo |
6027 | Valore errato nella lettera. | elenco dei modelli di commissione |
6028 | valore nella lettera. | elenco lingue |
6029 | L'oggetto intestazione non è specificato. | intestazione |
Un messaggio che consente all'integratore di modificare la configurazione del negozio senza dover eseguire un trasferimento di verifica.
<xsd:element name="UpdateConfigurationReq">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ServiceID" type="xsd:int" minOccurs="0"/>
<xsd:element name="Header" type="tns:Header"/>
<xsd:element name="ConfigurationData" type="tns:ConfigurationData"/>
<xsd:element name="Currency" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
nome | richiesto | tipo | descrizione |
---|---|---|---|
ID servizio | NO | intero | ID servizio. |
Intestazione | NO | Intestazione | Oggetto utilizzato per fornire dati di intestazione relativi alla sicurezza della comunicazione e alla correttezza dei dati trasmessi. |
Dati di configurazione | NO | Dati di configurazione | Un oggetto che fornisce informazioni sulla nuova configurazione del negozio. |
Valuta | NO | stringa | Valuta. |
<xsd:complexType name="Header">
<xsd:sequence>
<xsd:element name="PlatformId" type="xsd:string"/>
<xsd:element name="MessageTime" type="xsd:dateTime"/>
<xsd:element name="RequestId" type="xsd:long"/>
<xsd:element name="Hash" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID piattaforma | SÌ | stringa | L'identificativo univoco permanente della piattaforma assegnato dal sistema di pagamento online. |
3 | MessaggioTempo | SÌ | dateTime | Tempo di generazione del messaggio, i messaggi con un tempo impostato successivo a 5 minuti rispetto all'ora del server del Sistema di pagamento online saranno rifiutati. È buona norma impostare l'ora del messaggio now()-1min, nel caso in cui l'ora dei server non sia sincronizzata. Esempio: 2016-07-20T09:35:00.000 (messaggio generato il 2016-07-20 09:36:00). |
4 | ID richiesta | SÌ | lungo | L'identificativo univoco della richiesta all'interno della Piattaforma fornito dalla parte che ha avviato il messaggio in questione. |
n.d. | Hash | SÌ | stringa{64} | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri. L'ordine in cui i campi vengono concatenati segue l'ordine in cui compaiono nell'elenco dei parametri. Una chiave, condivisa tra il Sistema di piattaforma e il sistema di pagamento online, viene incollata alla fine della stringa di cui sopra. Dalla stringa risultante viene calcolato il valore della funzione di hash SHA256, che costituisce il valore del campo Hash del messaggio. Hash = SHA256(valori_messaggio + chiave condivisa) |
<xsd:complexType name="ConfigurationData">
<xsd:sequence>
<xsd:element name="isTransactionRefundAllowed" type="tns:BooleanType" minOccurs="0"/>
<xsd:element name="CommissionModel" type="xsd:long" nillable="true"/>
<xsd:element name="isCardsPaymentRequired" type="tns:BooleanType" minOccurs="0"/>
<xsd:element name="ServiceUrl" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nome del campo | richiesto | tipo | descrizione |
---|---|---|---|
isTransactionRefundAllowed | NO | Tipo booleano | Informazioni che indicano se il Partner desidera rendere disponibile al Servizio l'opzione di prelievo dal Conto di pagamento e di rimborso delle transazioni. Il mancato invio di un elemento o l'invio di un valore FALSO blocca questa opzione. L'invio di TRUE la rende disponibile per il Sito web. |
Modello di Commissione | NO | lungo | Numero di modelli di commissione concordati durante l'integrazione. |
isCardsPaymentRequired | NO | Tipo booleano | Informazioni sul fatto che il Partner desideri o meno fornire un'opzione di pagamento con carta per il Sito web. Il mancato invio dell'elemento o l'invio del valore false comporta la disattivazione delle carte. L'invio di TRUE avvia il processo di attivazione della carta o mantiene la disponibilità delle carte (nel caso in cui il processo di attivazione della carta per il Sito web sia stato completato con successo). |
ServiceUrl | NO | stringa | Campo per modificare l'indirizzo temporaneo fornito durante la registrazione in indirizzo di destinazione. |
NOTE: Dato in ServiceUrl l'indirizzo deve contenere la parte fissa del dominio.
Ad esempio, un cambio di indirizzo: https://nazwasklepu.integrator.pl su https://nazwasklepu.pl
Il messaggio è una risposta a UpdateConfigurationReq.
<xsd:element name="UpdateConfigurationResp">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Result" type="xsd:string"/>
<xsd:element name="ErrorStatus" type="xsd:string" nillable="true"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
nome del campo | tipo | descrizione |
---|---|---|
Risultato | xsd:stringa | OK - operazione completata con successo ERRORE - errore di modifica del servizio |
Stato di errore | xsd:stringa | Stato di errore se si è verificato ERROR. |
AttivazioneLink | xsd:stringa | URL che conduce al sistema configurato per il processo di verifica tramite trasferimento. |
Messaggio utilizzato per annullare la modifica dei dati di un servizio che è
attualmente in fase di verifica. Il metodo viene utilizzato quando la configurazione dell'integratore dal lato del sistema
Autopay blocca la gestione di più verifiche contemporaneamente per mantenere la coerenza dei dati modificati. Esecuzione corretta Annullamento dell'aggiornamento
consente di inviare i dati del modulo per modificare i dati del negozio senza
data-deepl-translation/>attendere lo stato di verifica finale della modifica precedente.
NOTE: I tentativi di recuperare il link del modulo per un sito che è attualmente in fase di verifica si concluderanno con un errore: SHOP_IN_VERIFICATION_STATUS.
<xsd:element name="CancelUpdateReq">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ServiceID" type="xsd:int" minOccurs="0"/>
<xsd:element name="AcceptorID" type="xsd:int" minOccurs="0"/>
<xsd:element name="Header" type="tns:Header"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
nome del campo | tipo | descrizione |
---|---|---|
ID servizio | int | ID servizio. |
AcceptorID | int | ID commerciante. |
Intestazione | intestazione | Oggetto utilizzato per fornire dati di intestazione relativi alla sicurezza della comunicazione e alla correttezza dei dati trasmessi. |
<xsd:element name="CancelUpdateResp">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Result" type="xsd:string"/>
<xsd:element name="ErrorStatus" type="xsd:string" nillable="true"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
nome del campo | tipo | descrizione |
---|---|---|
Risultato | xsd:stringa | OK - operazione completata con successo ERRORE - errore durante la modifica del servizio. |
Stato di errore | xsd:stringa | Quando si è verificato un ERRORE. |
Tipo di messaggio per la trasmissione di dati di intestazione relativi alla sicurezza della comunicazione e alla correttezza dei dati trasmessi.
<xsd:complexType name="Header">
<xsd:sequence>
<xsd:element name="PlatformId" type="xsd:string"/>
<xsd:element name="MessageTime" type="xsd:date"/>
<xsd:element name="RequestId" type="xsd:long"/>
<xsd:element name="Hash" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID piattaforma | SÌ | stringa | L'identificativo univoco permanente della piattaforma assegnato dal sistema di pagamento online. |
3 | MessaggioTempo | SÌ | dateTime | Tempo di generazione del messaggio, i messaggi con un tempo impostato successivo a 5 minuti rispetto all'ora del server del Sistema di pagamento online saranno rifiutati. È buona norma impostare l'ora del messaggio now()-1min, nel caso in cui l'ora dei server non sia sincronizzata. Esempio: 2016-07-20T09:35:00.000 (messaggio generato il 2016-07-20 09:36:00). |
4 | ID richiesta | SÌ | lungo | L'identificativo univoco della richiesta all'interno della Piattaforma fornito dalla parte che ha avviato il messaggio in questione. |
n.d. | Hash | SÌ | stringa{64} | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri. L'ordine in cui i campi vengono concatenati segue l'ordine in cui compaiono nell'elenco dei parametri. Una chiave, condivisa tra il Sistema di piattaforma e il sistema di pagamento online, viene incollata alla fine della stringa di cui sopra. Dalla stringa risultante viene calcolato il valore della funzione di hash SHA256, che costituisce il valore del campo Hash del messaggio. Hash = SHA256(valori_messaggio + chiave condivisa) |
Questo tipo di messaggio viene utilizzato per trasmettere l'indirizzo dell'entità in questione.
<xsd:complexType name="Address">
<xsd:sequence>
<xsd:element name=”Address” type=”xsd:string/>
<xsd:element name=”PostalCode” type=”xsd:string/>
<xsd:element name=”City” type=”xsd:string/>
<xsd:element name=”Country” type=”xsd:string/>
</xsd:sequence>
</xsd:complexType>
nome del campo | richiesto | tipo | descrizione |
---|---|---|---|
Indirizzo | SÌ | stringa | Indirizzo. |
Codice postale | SÌ | stringa | Codice postale. |
Città | SÌ | stringa | Città. |
Paese | SÌ | stringa | Paese. |
Un tipo che descrive il numero TIN con un limite da 2 a 15 caratteri.
<xsd:simpleType name="NIPType">
<xsd:restriction base="xsd:string">
<xsd:minLength value="2"/>
<xsd:maxLength value="15"/>
</xsd:restriction>
</xsd:simpleType>
Tipo che descrive la valuta.
<xsd:simpleType name="Currency">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="PLN"/>
<xsd:enumeration value="EUR"/>
<xsd:enumeration value="USD"/>
<xsd:enumeration value="GBP"/>
<xsd:enumeration value="CZK"/>
</xsd:restriction>
</xsd:simpleType>
Sistema di trasferimento del regolamento nel caso di un conto estero.
<xsd:simpleType name="ForeignTransferModeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="SWIFT"/>
<xsd:enumeration value="SEPA"/>
</xsd:restriction>
</xsd:simpleType>
L'oggetto è un elenco dei tipi di beneficiari reali del Partner.
<xsd:complexType name="Beneficials">
<xsd:sequence>
<xsd:element name="Beneficial" type="tns:Beneficial" minOccurs="0" maxOccurs="2"/>
</xsd:sequence>
</xsd:complexType>
L'oggetto contiene il tipo di beneficiario effettivo e un possibile elenco di beneficiari di quel tipo.
<xsd:complexType name="Beneficial">
<xsd:sequence>
<xsd:element name="BeneficialType" type="xsd:int"/>
<xsd:element name="BeneficialOwners" type="tns:BeneficialOwners" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
nome del campo | richiesto | tipo | descrizione |
---|---|---|---|
Tipo di beneficio | SÌ | int | Tipo di beneficiario: 11 - AZIONISTA BENEFICIARIO - una persona fisica che detiene, direttamente o indirettamente, più del 25% delle azioni/voti. 12 - BENEFICIARIO CONTROLLANTE - una persona fisica che esercita il controllo attraverso una società madre secondo le norme contabili. 13 - AMMINISTRATORI BENEFICIARI - persone che ricoprono una posizione di vertice nella Società (consiglio di amministrazione o di sorveglianza) 14 - PARTENARIATO BENEFICIARIO 15 - ALTRO BENEFICIARIO - una persona che non è il beneficiario effettivo; esiste una persona fisica che esercita un'influenza o un controllo su di esso. 16 - PROPRIETARIO BENEFICIARIO |
Proprietari Beneficiari | NO | Proprietari Beneficiari | Elenco dei beneficiari di un tipo. |
Il tipo descrive l'elenco dei beneficiari reali.
<xsd:complexType name="BeneficialOwners">
<xsd:sequence>
<xsd:element name="BeneficialOwner" type="tns:BeneficialOwner" minOccurs="0" maxOccurs="8"/>
</xsd:sequence>
</xsd:complexType>
Il tipo descrive i dati di un singolo titolare effettivo.
<xsd:complexType name="BeneficialOwner">
<xsd:sequence>
<xsd:element name="FirstName" type="xsd:string" nillable="false"/>
<xsd:element name="LastName" type="xsd:string" nillable="false"/>
<xsd:element name="Citizenship" type="xsd:string"/>
<xsd:element name="Share" type="xsd:int" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nome del campo | richiesto | tipo | descrizione |
---|---|---|---|
Nome | SÌ | stringa | Nome del beneficiario. |
Cognome | SÌ | stringa | Nome del beneficiario. |
Cittadinanza | SÌ | stringa | Nazionalità del beneficiario. |
Condividi | NO | int | Il numero di azioni del beneficiario espresso in percentuale. La quota di partecipazione deve essere maggiore o uguale al 25[%]. La somma delle quote di tutti i beneficiari di un Partner non deve superare il 100[%]. Le quote di partecipazione sono definite solo per i beneficiari di tipo 11. |
Tipo di messaggio che descrive il proxy.
<xsd:complexType name="Plenipotentiary">
<xsd:sequence>
<xsd:element name="FirstName" type="xsd:string"/>
<xsd:element name="LastName" type="xsd:string"/>
<xsd:element name="Citizenship" type="xsd:string"/>
<xsd:element name="Pesel" type="xsd:string" minOccurs="0"/>
<xsd:element name="BirthDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="BirthCountry" type="xsd:string" minOccurs="0"/>
<xsd:element name="DocumentType" type="xsd:string" minOccurs="0"/>
<xsd:element name="Document" type="xsd:string" minOccurs="0"/>
<xsd:element name="DocumentExpirationDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="DocumentCountryId" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nome del campo | richiesto | tipo | descrizione |
---|---|---|---|
Nome | SÌ | stringa | Nome dell'avvocato. |
Cognome | SÌ | stringa | Nome dell'avvocato. |
Cittadinanza | SÌ | stringa | Nazionalità dell'avvocato. |
Pesel | NO | stringa | Il peso dell'avvocato. Se non è disponibile il peso, è necessario indicare la data e il paese di nascita. |
Data di nascita | NO | stringa | Data di nascita del delegato nel formato AAAA-mm-gg (es. 1990-01-01). Da fornire quando il pesel non è noto o il delegato non ha un numero di pesel. |
Paese di nascita | NO | stringa | Stato di nascita del delegato. |
Tipo di documento | SÌ | stringa | Tipo di documento. Valori accettabili: PASSAPORTO o ID. |
Documento | SÌ | stringa | Numero del documento. |
Data di scadenza del documento | SÌ | stringa | Data di scadenza del documento. |
PaeseDocumento | SÌ | stringa | ID del paese del documento del beneficiario. Richiesto quando si specifica DocumentType=PASSPORT. CONSIGLIO: I valori accettabili sono indicati nella sezione Modifica della configurazione del servizio - "UPDATECONFIGURATION" |
Il tipo descrive l'elenco degli associati.
<xsd:complexType name="Partners">
<xsd:sequence>
<xsd:element name="Partner" type="tns:Partner" minOccurs="0" maxOccurs="7"/>
</xsd:sequence>
</xsd:complexType>
Tipo di messaggio che descrive l'associato.
<xsd:complexType name="Partners">
<xsd:sequence>
<xsd:element name="FirstName" type="xsd:string"/>
<xsd:element name="LastName" type="xsd:string"/>
<xsd:element name="Citizenship" type="xsd:string"/>
<xsd:element name="Pesel" type="xsd:string" minOccurs="0"/>
<xsd:element name="BirthDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="BirthCountry" type="xsd:string" minOccurs="0"/>
<xsd:element name="DocumentType" type="xsd:string" minOccurs="0"/>
<xsd:element name="Document" type="xsd:string" minOccurs="0"/>
<xsd:element name="DocumentExpirationDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="DocumentCountryId" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nome del campo | richiesto | tipo | descrizione |
---|---|---|---|
Nome | SÌ | stringa | Nome del partner. |
Cognome | SÌ | stringa | Nome del partner. |
Cittadinanza | SÌ | stringa | Nazionalità del partner. |
Pesel | NO | stringa | Il peso del partner. Se non è disponibile il peso, è necessario indicare la data e il paese di nascita. |
Data di nascita | NO | stringa | Data di nascita del partner nel formato AAAA-mm-gg (ad es. 1990-01-01). Da fornire quando il pesel non è noto o il partner non ha un numero di pesel. |
Tipo di documento | SÌ | stringa | Tipo di documento. Valori accettabili: PASSAPORTO o ID. |
Documento | SÌ | stringa | Numero del documento. Richiesto per l'activitykind: CIVIL_PARTNERSHIP. Per le altre forme giuridiche, il campo non deve essere compilato. |
Data di scadenza del documento | SÌ | stringa | Data di scadenza del documento. |
PaeseDocumento | SÌ | stringa | ID del paese del documento del beneficiario. Richiesto quando si specifica DocumentType=PASSPORT. CONSIGLIO: I valori accettabili sono indicati nella sezione Modifica della configurazione del servizio - "UPDATECONFIGURATION" |
Tipo di messaggio che descrive il servizio partner.
<xsd:complexType name="Service">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string" nillable="false"/>
<xsd:element name="ServiceUrl" type="xsd:string" nillable="false"/>
<xsd:element name="UrlITN" type="xsd:string" nillable="false"/>
<xsd:element name="ReturnUrl" type="xsd:string" nillable="false"/>
<xsd:element name="SettlementNRB" type="xsd:string" />
<xsd:element name="SwiftCode" type="xsd:string" minOccurs="0"/>
<xsd:element name="ForeignTransferMode" type="tns:ForeignTransferModeType" minOccurs="0"/>
<xsd:element name="CommissionModel" type="xsd:long" nillable="true"/>
<xsd:element name="isCardsPaymentRequired" type="xsd:boolean" minOccurs="0" />
<xsd:element name="AverageServiceTurnover" type="xsd:decimal" minOccurs="0" />
<xsd:element name="AverageTransactionAmount" type="xsd:decimal" minOccurs="0" />
<xsd:element name="EconomicPurpose" type="xsd:string" minOccurs="0" />
<xsd:element name="EconomicPurposeDescription" type="xsd:string" minOccurs="0" />
<xsd:element name="NumericTrade" type="xsd:int" minOccurs="0" />
<xsd:element name="InvoiceEmail" type="xsd:string" minOccurs="0" />
<xsd:element name="ContactEmail" type="xsd:string" minOccurs="0"/>
<xsd:element name="ComplaintEmail" type="xsd:string" minOccurs="0"/>
<xsd:element name="ReportEmail" type="xsd:string" minOccurs="0"/>
<xsd:element name="isTransactionRefundAllowed" type="xsd:boolean" minOccurs="0" />
<xsd:element name="Currency" type="tns:Currency" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nome del campo | richiesto | tipo | descrizione |
---|---|---|---|
Nome | SÌ | stringa | Nome del servizio partner. |
ServiceUrl | SÌ | stringa | URL del sito del partner. |
UrlITN | SÌ | stringa | L'URL a cui viene inviato un ITN con la notifica di una modifica dello stato di una transazione al ricevimento di tale informazione dal Canale di pagamento. |
URL di ritorno | SÌ | stringa | URL della pagina di restituzione del pagamento. |
InsediamentoNRB | SÌ | stringa | Numero di conto corrente bancario per il trasferimento dei fondi e la verifica tramite Bonifico di verifica. |
Codice Swift | NO | stringa | Codice SWIFT. Richiesto se viene indicato un numero di conto diverso da quello polacco. |
Modalità di trasferimento estero | NO | ForeignTransferModeType | Il sistema con cui verranno effettuati i trasferimenti di regolamento. Richiesto se viene indicato un numero di conto diverso da quello polacco. |
Modello di Commissione | NO | lungo | Numero di modelli di commissione concordati durante l'integrazione. |
isCardsPaymentRequired | NO | booleano | Informazioni sul fatto che il Partner desideri o meno fornire un'opzione di pagamento con carta per il Sito web. Il mancato invio dell'elemento o l'invio di un valore FALSE comporta la disattivazione delle carte. L'invio di TRUE avvia il processo di attivazione della carta o mantiene la disponibilità delle carte (nel caso in cui il processo di attivazione della carta per il Sito web sia stato completato con successo). |
Fatturato medio del servizio | NO | decimale(2) | Fatturato medio del servizio. Si utilizza un punto come separatore decimale - ".". Formato: 0,00; lunghezza massima: 14 cifre prima del punto e 2 dopo il punto. |
Importo medio della transazione | NO | decimale(2) | Valore medio delle transazioni. Un punto - '.' - viene utilizzato come separatore decimale. Formato: 0,00; lunghezza massima: 14 cifre prima del punto e 2 dopo il punto. |
Scopo economico | SÌ | stringa | Il Partner dichiara di stipulare l'Accordo per il seguente scopo commerciale: ATTIVITA' DI SVILUPPO: sviluppo dell'attività del Partner attraverso l'accettazione di pagamenti da parte dei Clienti tramite gli Strumenti di Pagamento (PBL, Carta, Quick Transfer) di cui al Contratto, START_ACTIVITY: inizio dell'attività commerciale del Partner nell'ambito della realizzazione di vendite a distanza di Prodotti, ALTRO: descrizione dettagliata nel campo EconomicPurposeDescription |
Scopo economicoDescrizione | NO | stringa | Descrizione della finalità economica da compilare per un campo EconomicPurpose con valore ALTRO. Sono consentite solo le lettere maiuscole dell'alfabeto latino e i caratteri dell'intervallo: êÓ󱶳¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ |
Commercio numerico | SÌ | int | Il settore in cui è specializzato il Servizio partner. Campo a scelta singola. Se il Sito partner rientra in più di una categoria, selezionare quella principale che genera il fatturato più elevato. Dizionario dei valori: 1 Alcool 2 Oggetti d'antiquariato, opere d'arte 3 Farmacie e integratori alimentari 4 Forniture mediche 5 Parafarmaci, integratori, erbe 6 Prodotti alimentari 7 Aste 8 Biancheria intima 9 Biglietti 10 Gioielli e orologi 11 Militaria 12 Costruzione 13 Carità 14 Prodotti chimici per la casa e l'industria 15 Devozionale 16 Casa e giardino 17 Bambino 18 E-book (libri elettronici) 19 Istruzione 20 Elettronica 21 Sigarette elettroniche 22 Filatelia 23 Finanza 24 Fondazione 25 gadget 26 Galanteria 27 Gastronomia 28 Giochi online (non d'azzardo), loghi, suonerie per cellulari 29 Istituzioni 30 Carte prepagate/codici/telecard 31 Raccolta 32 Computer e attrezzature informatiche, stampanti 33 Account web e di posta elettronica 34 Cosmetici e profumi 35 Libri, giornali, riviste 36 Fiori e regali 37 Forniture per ufficio 38 Automotive 39 Multimedia e musica 40 Emissione di massa di fatture 41 Numismatica 42 Abbigliamento 43 Annunci 44 Software, giochi per computer e applicazioni 45 Press/Subscription 46 Conti 47 Artigianato 48 Settore pubblico 49 Elettrodomestici bianchi/RTV 50 Attrezzature fotografiche 51 Attrezzature mediche 52 Attrezzature sportive 53 Formazione 54 Turismo e ospitalità 55 Assicurazione 56 Servizi 57 Servizi fotografici (stampe) e di stampa 58 Servizi medici 59 VOD 60 Pesca 61 Multi-industria 62 Arredi interni, mobili 63 Noleggio auto 64 Prodotti del tabacco 65 Giocattoli 66 Zoologia |
FatturaEmail | SÌ | stringa | Indirizzo e-mail per l'invio di fatture e rapporti mensili. |
ContattoEmail | SÌ | stringa | Indirizzo e-mail del partner. |
ReclamoEmail | SÌ | stringa | Indirizzo e-mail per i reclami. |
SegnalaEmail | SÌ | stringa | Indirizzo e-mail per l'invio dei rapporti giornalieri. |
isTransactionRefundAllowed | SÌ | booleano | Informazioni che indicano se il Partner desidera rendere disponibile al Servizio l'opzione di prelievo dal Conto di pagamento e di rimborso delle transazioni. Il mancato invio di un elemento o l'invio di un valore FALSO blocca questa opzione. L'invio di TRUE la rende disponibile per il Sito web. |
Valuta | SÌ | valuta | Valuta del servizio. |
Tipo di messaggio per la trasmissione dei dati del Partner.
<xsd:complexType name="Company">
<xsd:sequence>
<xsd:element name="CompanyRemoteId" type="xsd:string"/>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Address" type="tns:Address"/>
<xsd:element name="Nip" type="tns:NIPType"/>
<xsd:element name="Krs" type="xsd:string"/>
<xsd:element name="Phone" type="xsd:string"/>
<xsd:element name="RepresentingPersonFirstName" type="xsd:string"/>
<xsd:element name="RepresentingPersonLastName" type="xsd:string"/>
<xsd:element name="RepresentingPersonPesel" type="xsd:string"/>
<xsd:element name="RepresentingPersonDateOfBirth" type="xsd:string"/>
<xsd:element name="RepresentingPersonBirthCountry" type="xsd:string" minOccurs="0"/>
<xsd:element name="RepresentingPersonCitizenship" type="xsd:string"/>
<xsd:element name="RepresentingPersonPersonalDocumentType" type="xsd:string"/>
<xsd:element name="RepresentingPersonPersonalDocument" type="xsd:string"/>
<xsd:element name="RepresentingPersonPersonalDocumentExpirationDate" type="xsd:string"/>
<xsd:element name="RepresentingPersonPersonalDocumentCountryId" type="xsd:string" minOccurs="0"/>
<xsd:element name="Service" type="tns:Service"/>
<xsd:element name="ActivityKind" type="xsd:string"/>
<xsd:element name="LegalForm" type="xsd:string" minOccurs="0"/>
<xsd:element name="PanelAdministrator" type="xsd:string" minOccurs="0" />
<xsd:element name="isListedOnTheStockExchange" type="tns:BooleanType" />
<xsd:element name="Beneficials" type="tns:Beneficials" minOccurs="0" />
<xsd:element name="TradeRegisterName" type="xsd:string" minOccurs="0"/>
<xsd:element name="RegistrationDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="Plenipotentiary" type="tns:Plenipotentiary" minOccurs="0"/>
<xsd:element name="Partners" type="tns:Partners" minOccurs="0" />
<xsd:element name="PhysicalPerson" type="tns:PhysicalPerson" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nome del campo | richiesto | tipo | descrizione |
---|---|---|---|
IDSocietàRemoto | SÌ | stringa | ID che rappresenta il partner. |
Nome | SÌ | stringa | Nome completo del partner. Nome dell'esercente. Non consentito per ActivityKind=NON_ACCOUNTED_ACTIVITY. |
Indirizzo | SÌ | indirizzo | L'indirizzo presso il quale sono registrate le attività commerciali del Partner (la registrazione è possibile solo da paesi appartenenti al SEE). Non consentito per ActivityKind=NON_ACCOUNTED_ACTIVITY. |
Nip | SÌ | Tipo NIP | Partner NIP. Non consentito per ActivityKind=NON_ACCOUNTED_ACTIVITY. |
Krs | SÌ | stringa | Partner KRS. Richiesto per ActivityKind=GENERAL_PARTNERSHIP, LIMITED_LIABILITY_PARTNERSHIP, LIMITED_JOINT_STOCK_PARTNERSHIP, SP_ZOO, SA, SOCIETY, FOUNDATION, COOPERATIVE, CHURCH. |
Telefono | SÌ | stringa | Telefono di contatto del partner. |
RappresentarePersonaNomeCognome | SÌ | stringa | Nome della persona che rappresenta il Partner. Non consentito per ActivityKind=NON_ACCOUNTED_ACTIVITY. |
RappresentarePersonLastName | SÌ | stringa | Nome della persona che rappresenta il Partner. Non consentito per ActivityKind=NON_ACCOUNTED_ACTIVITY. |
RappresentantePersonaPesello | NO | stringa | PESEL della persona che rappresenta il socio. Non consentito per ActivityKind=NON_ACCOUNTED_ACTIVITY. |
RappresentarePersonaDataDellaNascita | NO | stringa | Data di nascita della persona che rappresenta il Partner nel formato AAAA-mm-gg (ad es. 1990-01-01). Non consentito per ActivityKind=NON_ACCOUNTED_ACTIVITY. Richiesto quando il rappresentante non ha un numero PESEL. |
RappresentantePersonaPaese di nascita | NO | stringa | Paese di nascita. Non consentito per ActivityKind=NON_ACCOUNTED_ACTIVITY. Richiesto quando il rappresentante non ha un numero PESEL. |
RappresentantePersonaCittadinanza | SÌ | stringa | Nazionalità. Non consentito per ActivityKind=NON_ACCOUNTED_ACTIVITY. |
RappresentarePersonaTipoDocumentoPersonale | SÌ | stringa | Tipo di prova dell'identità della persona che rappresenta il Partner. Valori accettabili: PASSAPORTO - passaporto ID - carta d'identità Non consentito per ActivityKind=NON_ACCOUNTED_ACTIVITY, GENERAL_PARTNERSHIP, LIMITED_LIABILITY_PARTNERSHIP, LIMITED_JOINT_STOCK_PARTNERSHIP, SP_ZOO, SA, SOCIETY, FOUNDATION, COOPERATIVE, GOVERNO, UNITÀ AUTOGOVERNATIVA, AUTOGOVERNATIVA, ISTITUZIONE CULTURALE, IMPRESA STATALE, ISTITUZIONE CULTURALE STATALE, ISTITUZIONE DEL SETTORE PUBBLICO, ISTITUZIONE DI RICERCA, CHIESA, ESTERO |
RappresentantePersonaDocumento personale | SÌ | stringa | La serie e il numero della carta d'identità (o il numero del passaporto - un documento che prova l'identità di una persona senza carta d'identità). Non consentito per ActivityKind=NON_ACCOUNTED_ACTIVITY, GENERAL_PARTNERSHIP, LIMITED_LIABILITY_PARTNERSHIP, LIMITED_JOINT_STOCK_PARTNERSHIP, SP_ZOO, SA, SOCIETY, FOUNDATION, COOPERATIVE, GOVERNO, UNITÀ AUTOGOVERNATIVA, AUTOGOVERNATIVA, ISTITUZIONE CULTURALE, IMPRESA STATALE, ISTITUZIONE CULTURALE STATALE, ISTITUZIONE PUBBLICA, ISTITUZIONE DI RICERCA, CHIESA, ESTERO. Sono ammessi solo numeri e lettere maiuscole dell'alfabeto latino. |
RappresentanteDocumento personaleData di scadenza | SÌ | stringa | Data di scadenza del documento d'identità (carta d'identità o passaporto). Non consentito per ActivityKind=NON_ACCOUNTED_ACTIVITY, GENERAL_PARTNERSHIP, LIMITED_LIABILITY_PARTNERSHIP, LIMITED_JOINT_STOCK_PARTNERSHIP, SP_ZOO, SA, SOCIETY, FOUNDATION, COOPERATIVE, GOVERNO, UNITÀ AUTOGOVERNATIVA, AUTOGOVERNATIVA, ISTITUZIONE CULTURALE, IMPRESA STATALE, ISTITUZIONE CULTURALE STATALE, ISTITUZIONE PUBBLICA, ISTITUZIONE DI RICERCA, CHIESA, ESTERO. Il documento deve essere valido per almeno un giorno. Richiesto per le forme giuridiche: SOCIETÀ_CIVILE, DITTA INDIVIDUALE. |
RappresentantePersonaleDocumentoPersonaleCountryId | SÌ | stringa | ID del paese del documento. Non consentito per ActivityKind=NON_ACCOUNTED_ACTIVITY, GENERAL_PARTNERSHIP, LIMITED_LIABILITY_PARTNERSHIP, LIMITED_JOINT_STOCK_PARTNERSHIP, SP_ZOO, SA, SOCIETY, FOUNDATION, COOPERATIVE, GOVERNO, UNITÀ AUTOGOVERNATIVA, AUTOGOVERNATIVA, ISTITUZIONE CULTURALE, IMPRESA STATALE, ISTITUZIONE CULTURALE STATALE, ISTITUZIONE PUBBLICA, ISTITUZIONE DI RICERCA, CHIESA, ESTERO. Richiesto per le forme giuridiche: SOCIETÀ_CIVILE, DITTA INDIVIDUALE. |
Servizio | SÌ | Servizio | Servizio partner. |
Forma giuridica | SÌ | stringa | Nome della forma giuridica straniera. Da compilare per ActivityKind = FOREIGN. |
Tipo di attività | SÌ | stringa | Forma giuridica. Di seguito sono riportati i valori accettabili. L'integratore deve presentare la forma giuridica al Partner in base alla versione linguistica della piattaforma: NON_ACCOUNTED_ACTIVITY - Attività non costituita in società di una persona fisica PROPRIETÀ - Impresa individuale CIVIL_PARTNERSHIP - Unione civile LIMITED_LIABILITY_PARTNERSHIP - Società di persone GENERAL_PARTNERSHIP - Società in nome collettivo SP_ZOO - Società a responsabilità limitata SA - Società per azioni LIMITED_PARTNERSHIP - Società in accomandita semplice LIMITED_JOINT_STOCK_PARTNERSHIP - Società in accomandita per azioni SOCIETÀ - Associazione FONDAZIONE COOPERATIVA - Cooperativa GOVERNO - Un'autorità governativa, un'autorità locale o un'agenzia di controllo. (comuni, autorità) SELF_GOVERNMENTAL_UNIT - Unità amministrativa locale SELF_GOVERNMENTAL_CULTURAL_INSTITUTION - Istituzione culturale dell'amministrazione locale STATE_OWNED_ENTERPRISE - Impresa di proprietà dello Stato STATE_CULTURAL_INSTITUTION - Istituzione culturale statale PUBLIC_SECTOR_INSTITUTION - autorità di bilancio RESEARCH_INSTITUTION - Istituto di ricerca CHIESA - Chiesa ESTERO - Imprenditore straniero. |
Amministratore del pannello | NO | stringa | Nome dell'amministratore del pannello del Sistema di pagamento online. |
è quotato in borsa | SÌ | booleano | Informazioni sul fatto che il Partner gestisce una società i cui titoli sono quotati in borsa in almeno uno Stato membro dell'Unione Europea o equivalente. Richiesto per ActivityKind = FOREIGN. |
Beneficiari | SÌ | Beneficiari | Beneficiari. Non consentito per ActivityKind=GOVERNMENT, SELF_GOVERNMENTAL_UNIT, SELF_GOVERNMENTAL_CULTURAL_INSTITUTION, STATE_OWNED_ENTERPRISE,STATE_CULTURAL_INSTITUTION, PUBLIC_SECTOR_INSTITUTION, RESEARCH_INSTITUTION, CIVIL_PARTNERSHIP |
Nome del registro commerciale | NO | stringa | Nome del registro commerciale. |
Data di registrazione | NO | stringa | Data di registrazione della società. |
Plenipotenziario | NO | Plenipotenziario | Delega. |
Partner | NO | - | Elenco dei partner. Richiesto per il tipo di attività= IMPRESA CIVILE, IMPRESA GENERALE, IMPRESA A RESPONSABILITÀ LIMITATA, IMPRESA A RESPONSABILITÀ LIMITATA, IMPRESA A RESPONSABILITÀ LIMITATA, IMPRESA A RESPONSABILITÀ LIMITATA |
Persona fisica | NO | Persona fisica | Individuale. Richiesto per ActivityKind=NON_ACCOUNTED_ACTIVITY |
Tipo di messaggio utilizzato per trasferire i dati di un individuo. Da compilare quando ActivityKind = NON_ACCOUNTED_ACTIVITY.
<xsd:complexType name="PhysicalPerson">
<xsd:sequence>
<xsd:element name="FirstName" type="xsd:string"/>
<xsd:element name="LastName" type="xsd:string"/>
<xsd:element name="Pesel" type="xsd:string"/>
<xsd:element name="DocumentType" type="xsd:string" minOccurs="0"/>
<xsd:element name="Document" type="xsd:string"/>
<xsd:element name="DocumentExpirationDate" type="xsd:string"/>
<xsd:element name="DocumentCountryId" type="xsd:string" minOccurs="0"/>
<xsd:element name="Citizenship" type="xsd:string"/>
<xsd:element name="BirthDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="BirthCountry" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nome del campo | richiesto | tipo | descrizione |
---|---|---|---|
Nome | SÌ | stringa | Nome dell'individuo. |
Cognome | SÌ | stringa | Nome della persona. |
Pesel | NO | stringa | PESEL della persona fisica. In assenza di pesel, è necessario indicare la data e il paese di nascita. |
Tipo di documento | SÌ | stringa | Tipo di documento. Valori accettabili: PASSAPORTO ID |
Documento | SÌ | stringa | Numero del documento. |
Data di scadenza del documento | SÌ | stringa | Data di scadenza del documento. |
PaeseDocumento | SÌ | stringa | ID dello stato del documento dell'individuo. Richiesto per DocumentType=PASSPORT. |
Cittadinanza | SÌ | stringa | Nazionalità dell'individuo. |
Data di nascita | NO | stringa | Data di nascita di un individuo nel formato AAAA-mm-gg (es. 1990-01-01). Da indicare quando il PESEL non è noto o il beneficiario non ha un numero PESEL. |
Paese di nascita | NO | stringa | Stato di nascita dell'individuo. |
La verifica dei dati riportati sul modulo si basa principalmente sulla forma giuridica dell'azienda. In base ad essa, sono previste le tipologie di beneficiari, le loro reciproche esclusioni e il numero massimo di occorrenze di per ogni tipologia.
Il tipo di beneficiario viene definito nel modulo spuntando dal cliente con la dichiarazione appropriata.
Forma giuridica | Dichiarazione | Tipo di beneficiario | Numero massimo di presenze per modulo |
---|---|---|---|
NON_ACCOUNTED_ACTIVITY - Attività non costituita in società di una persona fisica | Sono il beneficiario effettivo - non c'è nessun'altra persona fisica che eserciti un'influenza o un controllo su di me NOTE: Il cliente compila i dati del beneficiario solo se è spuntata l'indicazione per il tipo ALTRO BENEFICIARIO. |
PROPRIETARIO BENEFICIARIO | 0 |
Non sono il beneficiario effettivo - c'è un individuo che esercita un'influenza o un controllo su di me. | ALTRO BENEFICIARIO | 1 | |
PROPRIETÀ - Impresa individuale | Sono il beneficiario effettivo - non c'è nessun'altra persona fisica che eserciti un'influenza o un controllo su di me NOTE: Il cliente compila i dati del beneficiario solo se è spuntata l'indicazione per il tipo ALTRO BENEFICIARIO. |
PROPRIETARIO BENEFICIARIO | 0 |
Non sono il beneficiario effettivo - c'è un individuo che esercita un'influenza o un controllo su di me. | ALTRO BENEFICIARIO | 1 | |
CIVIL_PARTNERSHIP - Unione civile | Sono il beneficiario effettivo - non c'è nessun'altra persona fisica che eserciti un'influenza o un controllo su di me NOTE: Il cliente compila i dati del beneficiario solo se è spuntata l'indicazione per il tipo ALTRO BENEFICIARIO. |
PROPRIETARIO BENEFICIARIO | 0 |
Non sono il beneficiario effettivo - c'è un individuo che esercita un'influenza o un controllo su di me. | ALTRO BENEFICIARIO | 8 | |
GENERAL_PARTNERSHIP - Società in nome collettivo | I beneficiari effettivi sono i soci della Società. NOTE: Il cliente compila i dati del beneficiario solo se è spuntata l'indicazione per il tipo ALTRO BENEFICIARIO. |
PARTNER BENEFICIARIO | 0 |
Esiste una persona fisica, diversa dagli azionisti, che esercita un'influenza o un controllo sulla Società. | ALTRO BENEFICIARIO | 8 | |
LIMITED_LIABILITY_PARTNERSHIP - Società di persone | CONSIGLIO: Regole per la verifica dei dati del beneficiario analoghe a GENERAL_PARTNERSHIP. | ||
LIMITED_PARTNERSHIP - Società in accomandita semplice | CONSIGLIO: Regole per la verifica dei dati del beneficiario analoghe a GENERAL_PARTNERSHIP. | ||
LIMITED_JOINT_STOCK_PARTNERSHIP - Società in accomandita per azioni | C'è una persona fisica che detiene, direttamente o indirettamente, più del 25% delle azioni/voti NOTE: Il cliente inserisce i dati del beneficiario solo se è spuntata l'indicazione del tipo BENEFICIARIO. |
AZIONISTA BENEFICIARIO | 3 |
Nessuna persona fisica detiene, direttamente o indirettamente, più del 25% delle azioni/voti. | PARTNER BENEFICIARIO | 0 | |
SP_ZOO - Società a responsabilità limitata | C'è una persona fisica che detiene, direttamente o indirettamente, più del 25% delle azioni/voti NOTE: Il tipo BENEFICIARIO AMMINISTRATORE non può coesistere con altri tipi di beneficiari. Le tipologie BENEFICIARIO AZIONISTA e BENEFICIARIO DI CONTROLLO possono coesistere, pertanto il cliente può barrare sul modulo entrambe le diciture corrispondenti a queste tipologie. |
AZIONISTA BENEFICIARIO | 3 |
Esiste un soggetto che esercita il controllo attraverso la società madre in base alle norme contabili. | CONTROLLO DEL BENEFICIARIO | 8 | |
Persone che ricoprono una posizione di alta dirigenza nella Società (direzione o consiglio di sorveglianza) | GESTIONE DEI BENEFICIARI | 8 | |
SA - Società per azioni | CONSIGLIO: Regole di verifica dei dati del beneficiario analoghe a SP_ZOO. | ||
SOCIETÀ - Associazione | Il vero beneficiario è la gestione dell'associazione. NOTE: Nella comunicazione può comparire un solo tipo di beneficiario: BENEFICIARIO DIRETTO o ALTRO BENEFICIARIO. Queste tipologie si escludono a vicenda. |
GESTIONE DEI BENEFICIARI | 8 |
Esiste una persona fisica, diversa dal consiglio direttivo dell'associazione, che esercita un'influenza o un controllo sull'associazione stessa. | BENEFICIARIO ALTRO | 2 | |
FONDAZIONE | Il vero beneficiario è la gestione dell'associazione. NOTE: Il cliente può spuntare solo una delle dichiarazioni presenti nel modulo. I tipi corrispondenti si escludono a vicenda. |
GESTIONE DEI BENEFICIARI | 8 |
Esiste una persona fisica, diversa dal consiglio di amministrazione dell'associazione, che esercita un'influenza o un controllo sulla fondazione. | BENEFICIARIO ALTRO | 2 | |
COOPERATIVA - Cooperativa | Il beneficiario effettivo è il consiglio di amministrazione della cooperativa. NOTE: Il cliente può spuntare solo una delle dichiarazioni presenti nel modulo. I tipi corrispondenti si escludono a vicenda. |
GESTIONE DEI BENEFICIARI | 8 |
Esiste una persona fisica, diversa dal consiglio di amministrazione della cooperativa, che esercita un'influenza o un controllo sulla cooperativa stessa. | BENEFICIARIO ALTRO | 2 | |
GOVERNO - Un'autorità governativa, un'autorità locale o un'autorità esecutiva (comuni, uffici). | CONSIGLIO: Non vengono raccolte informazioni sui beneficiari. | ||
SELF_GOVERNMENTAL_UNIT - Unità governativa locale | CONSIGLIO: Non vengono raccolte informazioni sui beneficiari. | ||
SELF_GOVERNMENTAL_CULTURAL_INSTITUTION - Istituzione culturale dell'amministrazione locale | CONSIGLIO: Non vengono raccolte informazioni sui beneficiari. | ||
STATE_OWNED_ENTERPRISE - Impresa di proprietà dello Stato | CONSIGLIO: Non vengono raccolte informazioni sui beneficiari. | ||
STATE_CULTURAL_INSTITUTION - Istituzione culturale statale | CONSIGLIO: Non vengono raccolte informazioni sui beneficiari. | ||
PUBLIC_SECTOR_INSTITUTION - autorità di bilancio | CONSIGLIO: Non vengono raccolte informazioni sui beneficiari. | ||
RESEARCH_INSTITUTION - Istituto di ricerca | CONSIGLIO: Non vengono raccolte informazioni sui beneficiari. | ||
CHIESA - Entità giuridica della chiesa o sua unità organizzativa | Il beneficiario è l'organo della persona giuridica (ad esempio, per una parrocchia il vero beneficiario è il parroco). NOTE: Il cliente può spuntare solo una delle dichiarazioni presenti nel modulo. I tipi corrispondenti si escludono a vicenda. |
GESTIONE DEI BENEFICIARI | 8 |
Esiste un'altra persona fisica, diversa da un organo dell'entità giuridica ecclesiastica, che esercita un'influenza o un controllo su di essa | BENEFICIARIO ALTRO | 2 | |
ESTERO - Imprenditore straniero | C'è una persona fisica che detiene, direttamente o indirettamente, più del 25% delle azioni/voti NOTE: Il cliente può spuntare solo una delle dichiarazioni presenti nel modulo. I tipi corrispondenti si escludono a vicenda. |
AZIONISTA BENEFICIARIO | 2 |
Esiste una persona fisica che esercita il controllo attraverso la società madre in base alle norme contabili. | CONTROLLO DEL BENEFICIARIO | 8 | |
Persone che ricoprono una posizione di alta dirigenza nella società (direzione o consiglio di sorveglianza) | GESTIONE DEI BENEFICIARI | 8 |
Il Partner che crea un nuovo conto nel Sistema è tenuto a eseguire un Trasferimento di verifica. Dopo la sua esecuzione, l'AP effettua una valutazione dell'affidabilità del Partner, della correttezza dei suoi dati e della valutazione antiriciclaggio.
Quando il Partner aggiorna i dati, AP si aspetta che venga eseguito un Trasferimento di verifica, solo per i dati sensibili e chiave.
Nome del campo
NOTE: ServiceUrl è trattato come lo stesso se:
a. si differenzia solo per il protocollo (http/https)
b. nel corso dell'integrazione con il Partner, è stata confermata la migrazione dell'indirizzo del sito web da/verso il sottodominio CMS dell'integratore (ad es. przykladowastrona.integrator.pl = przykladowastrona.pl)
c. il componente "www" dell'indirizzo del negozio è stato omesso o aggiunto (ad es. przykladowastrona.pl = www. przykladowastrona.pl)
NOTE: TIN, KRS e forma giuridica sono dati che non possono essere
modificati. Se questi dati devono essere modificati, è necessario registrare nuovamente il servizio
.
Il link al Trasferimento di verifica e tutte le sue notifiche ITN, includono il ServiceID e l'OrderID dedicati costruiti secondo lo schema menzionato durante l'integrazione:
OrderID = ActivationServiceID_UID
Dove:
CONSIGLIO: I parametri ITN dedicati al processo di verifica sono descritti nella sezione Campi aggiuntivi nel messaggio ITN/IPN della transazione in entrata. In particolare, i campi di verificaStato e motivi della verifica.
CONSIGLIO: Le possibili transizioni degli stati di pagamento, le verifiche e i relativi dettagli sono inclusi nelle sezioni: Descrizione dettagliata della modifica dello stato di verifica - per una transazione completata correttamente (risultato positivo o negativo), Descrizione dettagliata della modifica dello stato di verifica - per una transazione non completata correttamente.
Questo documento descrive le regole relative allo scambio di messaggi tra l'AP e la piattaforma Marketplace del partner nell'ambito della funzionalità di aggiunta dei punti di regolamento (tecnologia REST).
L'Affiliato deve fornire un pulsante sulla sua Piattaforma di mercato, il cui clic da parte del Cliente attiverà un metodo nel sistema AP che genera un link effettivo a un modulo che consente la registrazione di un Punto di regolamento.
Al ricevimento del suddetto link, la Piattaforma Marketplace dovrebbe eseguire un reindirizzamento automatico al modulo presente in questo link.
La compilazione e l'invio dei dati del Negozio da parte del Cliente comporterà la registrazione del Punto di fatturazione nel sistema AP e la restituzione di una pagina di ringraziamento e di un link di verifica online per verificare la correttezza dei dati inseriti. Il link di verifica viene inviato anche all'indirizzo e-mail indicato dal Cliente nel modulo.
Una volta che il Cliente ha effettuato il pagamento di verifica e l'AP ha ricevuto i dati necessari dal Canale di pagamento, il Punto di regolamento riceve uno stato di verifica finale. Il suo valore positivo determina l'attivazione del Punto di Regolamento e la disponibilità a effettuare pagamenti con esso, e verrà inviato un messaggio al Cliente con i termini e le condizioni da lui accettati nel modulo di registrazione.
IMPORTANTE! La versione di produzione del servizio si trova dietro il firewall. L'accesso ad esso è assegnato a un pool di IP finito e definito durante l'integrazione. Questo non vale per l'ambiente di test.
IMPORTANTE! Un ID di piattaforma (MarketplaceID) e una chiave condivisa per il servizio di registrazione sono forniti per una piattaforma Marketplace per ambiente (test/produzione).
IMPORTANTE! Non è consentito rendere disponibili i dati di autorizzazione per il servizio, ovvero MarketplaceID e chiave condivisa, in qualsiasi forma (anche nel codice di un'applicazione in esecuzione su un server di terzi).
Dati | Comunicata dall'AP al Partner | Comunicata dal Partner all'AP |
---|---|---|
Indirizzo REST | ✔ | ✖ |
MercatoID | ✔ | ✖ |
Metodo : collegamento | ✔ | ✖ |
ServiceID (per il servizio Verifica trasferimento crediti) | ✔ | ✖ |
Chiave condivisa per il servizio di registrazione del punto di insediamento | ✔ | ✖ |
Chiave condivisa per il servizio Verifica trasferimento crediti | ✔ | ✖ |
Meccanismo di funzione di scelta rapida | ✔ | ✖ |
Indirizzo del modulo di prova | ✔ | ✖ |
Indirizzo IP da cui vengono inviati gli ITN che informano sullo stato di verifica del punto di regolamento. | ✔ | ✖ |
Indirizzo del pannello di amministrazione del partner (facoltativo) | ✔ | ✖ |
Accesso | ✔ | ✖ |
Password | ✔ | ✖ |
Indirizzo ITN dopo il trasferimento di verifica | ✖ | ✔ |
Indirizzo di ritorno dopo il trasferimento di verifica | ✖ | ✔ |
Dati | Comunicata dall'AP al Partner | Comunicata dal Partner all'AP |
---|---|---|
Indirizzo REST | ✖ | ✖ |
MercatoID | ✔ | ✖ |
Metodo : collegamento | ✔ | ✖ |
ServiceID (per il servizio Verifica trasferimento crediti) | ✔ | ✖ |
Chiave condivisa per il servizio di registrazione del punto di insediamento | ✔ | ✖ |
Chiave condivisa per il servizio Verifica trasferimento crediti | ✔ | ✖ |
Meccanismo di funzione di scelta rapida | ✔ | ✖ |
Indirizzo IP da cui vengono inviati gli ITN che informano sullo stato di verifica del punto di regolamento. | ✔ | ✖ |
Indirizzo del pannello di amministrazione del partner (facoltativo) | ✔ | ✖ |
Accesso | ✔ | ✖ |
Password | ✔ | ✖ |
Indirizzo IP dal quale viene effettuata la connessione al WS | ✖ | ✔ |
Indirizzo ITN dopo il trasferimento di verifica | ✖ | ✔ |
Indirizzo di ritorno dopo il trasferimento di verifica | ✖ | ✔ |
Lo scambio di messaggi tra l'AP e il servizio partner che implementa la funzionalità di aggiunta dei punti di regolamento avviene tramite la tecnologia REST. Tutti i parametri dei messaggi vengono passati con il metodo POST. Il protocollo è sensibile alle maiuscole e minuscole, sia per i nomi che per i valori dei parametri. I valori dei parametri trasmessi devono essere codificati in UTF-8.
Dopo che il cliente ha cliccato sul pulsante di registrazione sulla piattaforma Marketplace, il seguente indirizzo verrà inviato a https://adres_usługi/api/marketplace/link deve essere inviata una richiesta per il link corrente al modulo di registrazione. Il messaggio deve essere inviato con l'intestazione Content-Type: application/json e i parametri indicati nella tabella seguente:
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | mercatoID | SÌ | stringa | Un identificativo unico permanente del Marketplace assegnato dal Sistema di pagamento online. |
2 | messaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio con una lunghezza di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID). Il valore del campo deve essere unico per ogni richiesta di collegamento al modulo. |
n.d. | hash | SÌ | stringa{64} | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri. L'ordine in cui i campi sono concatenati segue l'ordine in cui appaiono nell'elenco dei parametri. I parametri nella stringa sono separati tra loro dal carattere "|". Alla stringa così creata viene incollata alla fine la chiave passata durante l'integrazione. La stringa risultante viene utilizzata per calcolare il valore della funzione di hash SHA256 e costituisce il valore del campo Hash del messaggio. Hash=SHA256(valori_messaggio + chiave condivisa) |
Esempio di calcolo dell'hash per il seguente messaggio:
{
"marketplaceID":1,
"messageID":"12345678901234567890123456789000",
"hash":"wartosc_hash"
}
dove
Hash=SHA256(1|12345678901234567890123456789000|klucz_wspoldzielony) = wartosc_hash
In risposta alla richiesta di cui sopra, viene restituito un messaggio (nella stessa sessione HTTP) contenente un link al modulo o, in caso di errore, la sua descrizione insieme all'indicazione del campo interessato.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | tipo | descrizione |
---|---|---|---|
1 | link | stringa | Link generato al modulo di registrazione. |
2 | messaggioID | stringa{32} | Identificatore pseudocasuale del messaggio. Il suo valore corrisponde al valore ricevuto nel messaggio inviato dalla piattaforma Marketplace. |
n.d. | hash | stringa{64} | Il valore della funzione hash, utilizzata per autenticare il messaggio, è calcolato da una stringa contenente i campi incollati del messaggio (concatenazione di campi). Vengono concatenati solo i valori dei campi, senza i nomi dei parametri. L'ordine in cui i campi vengono concatenati segue l'ordine in cui compaiono nell'elenco dei parametri. Una chiave, condivisa tra il Sistema di piattaforma e il sistema di pagamento online, viene incollata alla fine della stringa di cui sopra. Dalla stringa risultante viene calcolato il valore della funzione di hash SHA256, che costituisce il valore del campo Hash del messaggio. Hash = SHA256(valori_messaggio + chiave condivisa) |
n.d. | errori | - | Un elenco di errori nel messaggio inviato dalla piattaforma Marketplace. |
n.d. | errori -> campo | stringa | Nome del campo interessato dall'errore. |
n.d. | errori -> errore | stringa | Descrizione del bug. |
NOTE: Quando la piattaforma Marketplace riceve un link al modulo
, deve essere eseguito un reindirizzamento automatico al modulo.
NOTE: Ogni tentativo di registrazione deve essere preceduto dal download del link al modulo.
NOTE: Il link al modulo è attivo di default per 24 ore
(il valore può essere modificato su richiesta del Partner) dopo la sua generazione.
(a) Richiesta elaborata correttamente.
RICHIESTA
{
"marketplaceID":1,
"messageID":"12345678901234567890123456789000",
"hash":"437c941b5c88b9d0bfa58a1d073d724f55cfed794c1cf9648ba2340c3dcc803f"
}
RISPOSTA
{
"link": "https://adres_usługi/marketplace/ee0e88d81c11b110c1a35a740996453d745dcde0be449686be6ec0777a02be5d",
"messageID": "12345678901234567890123456789000",
"hash": "d01e20cc8ab2c3fbe907e805329d915a20058e96f1d6d91a863361444cbd6379"
}
(b) MessageID è già stato utilizzato, non è unico.
RICHIESTA
{
"marketplaceID":1,
"messageID":"12345678901234567890123456789012",
"hash":"e43ff5f4b3121d1fd267bd66aaf446b079c28292f2a966e23eb1e8a8c0aaf81a"
}
RISPOSTA
{
"errors": [
{
"field": "messageID",
"error": "messageId not unique"
}
]
}
(c) Il MessageID univoco deve essere di 32 caratteri.
RICHIESTA
{
"marketplaceID":1,
"messageID":"1234567890123456789012345678900022222",
"hash":"dc8d14b5e3491a700e7f2479f8c196cc0db76f41b2b2ffac1f042a6cad1e5914"
}
RISPOSTA
{
"errors": [
{
"field": "messageID",
"error": "size must be between 32 and 32"
}
]
}
(d) L'hash specificato non è corretto.
RICHIESTA
{
"marketplaceID":1,
"messageID":"12345678901234567890123456789001",
"hash":"dc8d14b5e3491a700e7f2479f8c196cc0db76f41b2b2ffac1f042a6cad1eaaaa"
}
RISPOSTA
{
"errors": [
{
"field": "hash",
"error": "Invalid hash"
}
]
}
Il supporto per la preautorizzazione della carta fornisce la funzionalità di bloccare i fondi sulla carta del cliente per un certo periodo di tempo (ad esempio, predeterminato durante la creazione del blocco) e poi effettuare un addebito. Un caso particolare è quello in cui il blocco viene rimosso senza che venga detratto alcun importo (ad esempio, il servizio al cliente non è stato eseguito).
Tutte queste operazioni (blocco dei fondi, addebito, ritiro del blocco) devono essere ordinate tramite l'API del Sistema di pagamento Autopay. Se non c'è un ordine di addebito sulla carta durante il periodo di validità della transazione che ha creato il blocco, il sistema rilascerà i fondi, notificandovi con un messaggio standard di Transaction Status Change (ITN).
Anche altre operazioni (addebito riuscito, blocco della carta e successivo addebito) comportano l'invio di un messaggio ITN. Questo messaggio è l'unica informazione vincolante sulla modifica dello stato di una transazione e (utilizzato insieme al servizio Stato della transazione; si veda la sezione Richiesta di informazioni sullo stato di una transazione), aiuta a gestire la transazione senza interrompere la sessione con l'utente (anche in caso di vari problemi di rete). Riconoscimento delle operazioni sincrone (nodo confermaservono solo a presentare le informazioni sull'ordine iniziale).
È possibile distinguere tra 3 modi fondamentali di posizionare un lucchetto su una carta:
a) Stabilire un blocco durante l'autorizzazione di un pagamento una tantum (cfr. Schema A per la preautorizzazione). Il cliente compila il formato della carta, dopo l'avvio della transazione, che il Partner indica nei parametri di avvio:
- canale di pagamento con carta (GatewayID=1500) e
- il desiderio di assicurarsi i fondi piuttosto che di impegnarli (Mantenere=vero)
(b) Assunzione di un blocco al momento dell'avvio di un pagamento automatico (registrazione della carta nel Servizio o nell'Applicazione mobile) (cfr. Schema B per la preautorizzazione).
CONSIGLIO: L'intero ciclo e tutti gli eventi di pagamento automatico secondo la documentazione, modificati dal momento in cui la carta viene effettivamente addebitata e il pagamento automatico viene impostato - nel modello di pre-autorizzazione questa operazione transazioneCancellare causa di questi eventi.
Il cliente compila il formato della carta, una volta avviata la transazione, che il Partner indica nei parametri di avvio:
- canale di pagamento con carta (GatewayID=1503),
- il fatto di accettare i termini e le condizioni del servizio di pagamento automatico
data-deepl-translation/> fornito da AP (RecurringAcceptanceState=ACCEPTED, o dopo accordi sul valore aziendale PROMEMORIA/FORZA)- la scelta di inizializzare un pagamento automatico con un potenziale
data-deepl-translation/> addebito sulla carta (RecurringAction=INIT_WITH_PAYMENT)- il desiderio di assicurarsi i fondi piuttosto che di impegnarli (Mantenere=vero)
(c) Stabilire un blocco utilizzando una scheda salvata in precedenza (cfr. Schema C per la preautorizzazione).
CONSIGLIO: L'intero ciclo e tutti gli eventi del pagamento automatico secondo la documentazione, modificato dal momento dell'effettivo addebito della carta e dell'instaurazione del pagamento automatico - nel modello di pre-autorizzazione questa operazione transazioneCancellare causa di questi eventi.
Il cliente non compila il modulo della carta, ma ha luogo una pre-transazione backend (senza reindirizzamento), in cui il partner indica nei parametri di avvio:
- canale di pagamento con carta (GatewayID=1503)
- indicazione di una scheda precedentemente aggiunta (ClientHash derivato da RPAN)
- scelta del metodo di pagamento automatico (RecurringAction=MANUAL)
- il desiderio di assicurarsi i fondi piuttosto che di impegnarli (Mantenere=vero)
Ciascuno di questi metodi per stabilire un blocco dà luogo a un messaggio ITN il cui stato
indica il risultato dell'autorizzazione della transazione. Oltre agli stati standard
, in caso di blocco dei fondi, il Sistema può fornire nello stato ITN
paymentStatus=ON_HOLDche costituisce la conferma della creazione di un
blocco di fondi sulla carta del Cliente. Inoltre, l'ITN conterrà, per impostazione predefinita, un
identificatore globale di transazione (ID remoto), che sarà
necessario per il successivo caricamento del blocco stabilito.
Una volta stabilito il blocco, il Partner può effettuare un ordine di addebito sulla
carta precedentemente autorizzata (cfr. Schema D per la preautorizzazione). In
questo caso è necessario richiamare un servizio dedicato. transazioneCancellare
(https://{host_gateway}/webapi/transactionClear) con i corrispondenti parametri
. Tutti i parametri sono passati tramite il metodo POST
(Content-Type: application/x-www-form-urlencoded). Il protocollo è
sensibile alle maiuscole e minuscole sia nei nomi dei parametri che nei valori. I valori di
parametri passati devono essere codificati in UTF-8.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | stringa{1,10} | ID servizio partner. |
2 | MessaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio con una lunghezza di 32 caratteri alfanumerici latini (ad esempio su base UID); il valore del campo deve essere unico e indicare uno specifico ordine di pagamento sul Servizio partner. |
3 | ID remoto | SÌ | stringa{1,20} | L'identificativo alfanumerico della transazione assegnato dal Sistema e trasmesso al Partner nel messaggio ITN della transazione in entrata. La sua indicazione comporterà l'addebito sulla carta autorizzata nella transazione dell'importo indicato. ID remotose è in uno stato di blocco (stato ON_HOLD). |
4 | Importo | SÌ | importo | Importo dell'addebito (non deve essere superiore all'importo del blocco); un punto viene utilizzato come separatore decimale - '.' Formato: 0,00. |
5 | Prodotti | SÌ | stringa{1,10000} | Informazioni sui prodotti inclusi nella transazione, trasmesse come XML codificato con protocollo di trasporto Base64. La struttura deve includere tutti i prodotti specificati nella preautorizzazione, ma può essere semplificata (solo productID e idBalancePoint saranno presi in considerazione per identificare il prodotto il cui importo deve essere aggiornato, e il nuovo importo deve essere specificato in subAmount). /Richiesto per più prodotti specificati nella pre-autorizzazione. |
n.d. | Hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio partner. |
Per una corretta interrogazione, insieme ai parametri passati deve essere inviata un'intestazione HTTP definita con un contenuto appropriato. L'intestazione allegata dovrebbe essere denominata 'BmHeader' e avere il seguente valore 'pay-bm', nella sua interezza dovrebbe avere il seguente aspetto 'BmHeader: pay-bm'. In caso di messaggio valido, viene restituito un testo in formato XML (nella stessa sessione HTTP), contenente la conferma dell'esecuzione dell'operazione o la descrizione dell'errore.
Struttura di conferma (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<balancePayoff>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<remoteOutID>RemoteOutID</remoteOutID>
<hash>Hash</hash>
</balancePayoff>
Struttura di conferma (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<balancePayoff>
<balancePointID>BalancePointID</balancePointID>
<messageID>MessageID</messageID>
<remoteOutID>RemoteOutID</remoteOutID>
<hash>Hash</hash>
</balancePayoff>
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceID | SÌ | stringa{1,32} | Identificatore di servizio del partner. Derivato da una richiesta di metodo. Richiesto per la conferma=CONFIRMED. |
2 | messaggioID | SÌ | stringa{1,20} | Identificatore pseudocasuale del messaggio di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID). Derivato dalla richiesta del metodo. Richiesto per la conferma=CONFIRMED. |
3 | conferma | SÌ | stringa{1,100} | Stato di conferma dell'ordine. Può assumere due valori: - CONFERMATO - l'operazione è riuscita. NOTE: Questo non significa che il carico venga eseguito! Il sistema consegnerà in modo asincrono l'ITN con paymentStatus=SUCCESS. - NOTCONFIRMED - operazione fallita. |
4 | motivo | NO | stringa{1,1000} | Spiegazione dei dettagli dell'elaborazione della richiesta. |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio partner. Richiesto per la conferma=CONFIRMED. |
Una volta stabilito il blocco, il Partner può ordinarne il
rilascio (senza detrarre alcun fondo) (Cfr. Schema E per la preautorizzazione). Per questa operazione, utilizzare il servizio releaseHold
(Vedi Annullamento di una transazione non pagata). Dopo l'avvio con successo di un
lock release (una risposta corretta a una transazione di cancellazione
), il Sistema consegnerà in modo asincrono l'ITN dal
paymentStatus=FAILURE e paymentStatusDetails=CANCELLATO.
In caso di inattività del Partner (dopo che il blocco è stato stabilito) per un periodo predeterminato di validità della transazione, questa viene rilasciata dal Sistema (senza detrarre alcun fondo) (Rif. Schema F per la preautorizzazione). Il sistema annullerà la transazione, rimuoverà il blocco e fornirà all'ITN l'indirizzo di posta elettronica. paymentStatus=FAILURE e paymentStatusDetails=CANCELLATO.
La pre-transazione estende il modello standard di avvio della transazione, gestendo esigenze specifiche:
ordinare un link di pagamento in base ai parametri inviati
addebiti al cliente (se non è richiesta un'ulteriore autorizzazione da parte del cliente)
verificare la correttezza del link di pagamento prima che il cliente venga reindirizzato al sistema - la chiamata convalida i parametri e la configurazione del sistema
Accorciamento del link di pagamento - invece di diversi parametri, il link viene accorciato a due identificatori
nascondere i dati sensibili dei parametri del collegamento alla transazione - la pre-transazione avviene nel backend e il collegamento alla continuazione della transazione non contiene dati sensibili, ma solo gli identificatori della continuazione
l'uso dell'SDK mobile in una variante mista - l'inizio della transazione
viene eseguito dal backend dell'applicazione mobile piuttosto che dall'SDK stesso utilizzando il token di transazione
CONSIGLIO: Dettagli sulle varianti dell'SDK in Documentazione SDK.
I casi d'uso specifici della pre-transazione sono i carichi:
BLIK 0
Per poter usufruire di questo servizio, è necessario fornire GatewayID=509 e passare il codice di autorizzazione della transazione
nel parametro Codice di autorizzazione.
BLIK 0 Un clic
Spese per "Pagamento automatico
Per utilizzare questo servizio, è necessario fornire una delle seguenti informazioni GatewayID o
gatewayType="Pagamento automatico". e i parametri necessari.
Autorizzazioni tramite portafoglio Visa
Per poter usufruire di questo servizio, è necessario fornire GatewayID=1511 e passare il token codificato
nel parametro Token di pagamento. In assenza di un token
, l'autorizzazione avverrà sul sito del sistema.
Autorizzazioni attraverso i portafogli Google Pay
NOTE: Il servizio consente di addebitare la carta memorizzata nel portafoglio del cliente senza reindirizzarla al sistema. Spesso viene applicata un'autorizzazione aggiuntiva sotto forma di 3DS (comportamento predefinito dell'ambiente di prova, che può essere riconfigurato).
Nel modello Etichetta bianca integrare come descritto e
poi fornire il GatewayID=1512 e il token codificato nel parametro
Token di pagamento. In assenza di un token (o di un modello diverso dal modello
Etichetta bianca) si limita a dichiarare GatewayID=1512 - L'autorizzazione
data-deepl-translation/> avverrà sul sito web del sistema.
Autorizzazioni attraverso i portafogli Apple Pay
Per poter usufruire di questo servizio, è necessario fornire GatewayID=1513. L'autorizzazione
avverrà sul sito del sistema.
Autorizzazione attraverso il formato nativo dell'SDK mobile
NOTE: Il servizio consente l'addebito della carta, i cui dettagli sono forniti nel formato della carta sicura dell'SDK, mentre l'avvio della transazione viene eseguito dal backend dell'applicazione mobile.
Oltre al GatewayID appropriato - 1500 per un pagamento unico o 1503 per l'attivazione di un pagamento automatico (e altri parametri) - il PaymentToken ottenuto dall'SDK e il parametro WalletType=SDK_NATIVE (descrizione in sezione Avvio di una transazione con parametri aggiuntivi)
È obbligatorio per le pre-transazioni inviare al backend
(utilizzando ad esempio cURL) il messaggio standard di avvio
della transazione (cfr. Inizio della transazione), con un'intestazione 'BmHeader' con valori
: 'pay-bm-continue-transaction-url':
Esempio di intestazione
BmHeader: pay-bm-continue-transaction-url'.)
Inoltre, si raccomanda che il parametro ClienteIP (per richieste di risarcimento, per scopi di rendicontazione).
Esempio di avvio della pre-transazione (PHP)
$data = array(
'ServiceID' => '100047',
'OrderID' => ‘20161017143213’,
'Amount' => '1.00',
'Description' => 'test bramki',
'GatewayID' => '0',
'Currency' => 'PLN',
'CustomerEmail' => 'test@bramka.pl',
'CustomerIP' => '127.0.0.0',
'Title' => 'Test title',
'Hash' => 0c5ca136e8833e40efbf42a4da7c148c50bf99f8af26f5c9400681702bd72056
);
$fields = (is_array($data)) ? http_build_query($data) : $data;
$curl = curl_init('https://{host_bramki}/test_ecommerce');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('BmHeader: pay-bm-continue-transaction-url'));
curl_setopt($curl, CURLOPT_POSTFIELDS, $fields);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
$curlResponse = curl_exec($curl);
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$response = curl_getinfo($curl);
curl_close($curl);
echo htmlspecialchars_decode($curlResponse);
In caso di corretta convalida dei parametri (e della configurazione) e di
necessità per il cliente di eseguire un'azione aggiuntiva (selezione del canale di
pagamento - se specificato GatewayID=0, esecuzione/conferma del trasferimento
, inserimento del codice CVC/CVV, esecuzione del 3DS) - verrà restituito un XML
con un link per continuare la transazione.
Esempio di file di collegamento di continuazione della transazione (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transaction>
<status>PENDING</status>
<redirecturl>
https://{host_bramki}/payment/continue/96VSD39Z6E/L6CGP5BH
</redirecturl>
<orderID>20180824105435</orderID>
<remoteID>96VSD39Z6E</remoteID>
<hash>
1c6eae2127f0c3f81fbed3b6372f128040729a4d4e562fb696c22e0db68dbbe1
</hash>
</transaction>
Oggetto transazione rappresenta la ricezione o il prelievo di fondi da un conto AP, come un acquisto o un rimborso completato.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | stato | SÌ | stringa{1,32} | Stato della transazione. In questo caso la costante PENDING. |
2 | redirecturl | SÌ | stringa{1,100} | Indirizzo per continuare una transazione iniziata da un messaggio di pre-transazione. |
3 | ID ordine | SÌ | stringa{1,32} | L'identificativo della transazione assegnato nel Servizio partner e comunicato all'inizio della transazione. |
4 | ID remoto | SÌ | stringa{1,20} | L'identificativo unico della transazione assegnato nel sistema AP. |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da herwis. |
In caso di convalida non valida o di caricamento non riuscito, non viene generato alcun link di continuazione
. Viene restituito un testo
in formato XML (nella stessa sessione HTTP), che indica lo stato di elaborazione della richiesta.
Esempio di stato di elaborazione della richiesta (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transaction>
<orderID>OrderID</orderID>
<remoteID>RemoteID</remoteID>
<confirmation>ConfStatus</confirmation>
<reason>Reason</reason>
<blikAMList>
<blikAM>
<blikAMKey>Klucz1</blikAMKey>
<blikAMLabel>Etykieta1</blikAMLabel>
</blikAM>
<blikAM>
<blikAMKey>Klucz2</blikAMKey>
<blikAMLabel>Etykieta2</blikAMLabel>
</blikAM>
</blikAMList>
<paymentStatus>PaymentStatus</paymentStatus>
<hash>Hash</hash>
</transaction>
Parametri restituiti per il risultato della pre-transazione.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID ordine | SÌ | stringa{1,32} | L'identificativo della transazione assegnato nel Servizio partner e comunicato all'inizio della transazione. Richiesto per la conferma=CONFIRMED. |
2 | ID remoto | SÌ | stringa{1,20} | L'identificativo unico della transazione assegnato nel sistema AP. Richiesto per la conferma=CONFIRMED. |
3 | conferma | SÌ | stringa{1,100} | Stato di conferma dell'ordine. Può assumere due valori: - CONFERMATO - l'operazione è riuscita. NOTA: non indica il carico. - NOTCONFIRMED - operazione fallita. |
4 | motivo | NO | stringa{1,1000} | Spiegazione del motivo del rifiuto dell'ordine (per conferma=NOTCONFIRMED), se disponibile. |
5 | elenco blikAML | NO | stringa{1,10000} | Elenco delle applicazioni di banca mobile disponibili nell'ambito dell'opzione BLIK 0 OneClick (per conferma=NOTCONFIRMED e motivo=ALIAS_NONUNIQUE). |
Formato per blikAMList:
|
||||
6 | Stato del pagamento | NO | enum | Stato di autorizzazione della transazione, assume i valori: - PENDING - transazione avviata - SUCCESSO - corretta autorizzazione delle transazioni - FAILURE - transazione non completata correttamente |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del Servizio. Richiesto per la conferma=CONFIRMED. |
Se i parametri (e la configurazione) sono stati convalidati correttamente e non c'è bisogno che il cliente esegua un'azione aggiuntiva, viene restituita una conferma dell'ordine di addebito.
Questo è il caso in cui i dati sono sufficienti per effettuare un addebito per il canale di pagamento in questione, ad esempio: BLIK 0 senza il codice BLIK richiesto (né l'indicazione dell'alias dell'app mobile della banca), pagamento ricorrente, pagamento con carta OneClick senza il CVC/CVV/3DS richiesto.
Risultato
conferma=CONFIRMED
Convalida dei parametri non corretta
Se i parametri (e la configurazione) non sono convalidati correttamente - viene restituito un errore.
Risultato
conferma=NOTCONFIRMED
Un errore può essere restituito anche in caso di risposta sincrona da parte del Canale di pagamento (ad esempio un errore specifico per il tentativo di inizializzare un pagamento automatico BLIK, ovvero reason= RECURRENCY_NOT_SUPPORTED).
NOTE: Un errore può essere restituito anche in caso di risposta sincrona da parte di un Canale di pagamento (ad esempio, un errore specifico per un tentativo di inizializzazione di un pagamento automatico BLIK, vale a dire reason=RECURENCY_NOT_SUPPORTED). Un altro caso noto è l'errore di convalida dell'indirizzo fornito nel parametro iniziale CustomerEmail (INVALID_EMAIL).
Stato di conferma | Stato del pagamento | Descrizione del comportamento del partner |
---|---|---|
CONFERMATO | SUCCESSO | Transazione accettata per l'elaborazione, stato corretto. La prova di carico non deve essere ripetuta. La conferma del pagamento può essere visualizzata, ma i processi aziendali devono essere messi in pausa fino alla conferma nell'ITN (che verrà inviata una volta che l'AP avrà ricevuto lo stato corretto della transazione dal Canale di pagamento). |
CONFERMATO | FALLIMENTO | Transazione accettata per l'elaborazione, stato non valido. È possibile riprovare il caricamento con lo stesso ID ordine. Una volta che l'AP ha ricevuto lo stato della transazione dal canale di pagamento, viene inviato un messaggio ITN. NOTE: Non è possibile ripetere il tentativo di caricamento con la stessa ID ordinese, durante l'integrazione, viene concordato un modello per il Sistema per bloccare l'inizio delle transazioni con lo stesso ID ordine. Comportamento predefinito di unicità del partner ID ordine è solo una raccomandazione e non è soggetta a verifica all'inizio della transazione. |
CONFERMATO | IN ATTESA | Una transazione è stata accettata per l'elaborazione, ma il suo stato non è ancora noto. Non ritentare il caricamento. Gestione ulteriore come in caso di timeout. |
NON CONFERMATO | - | Transazione non ordinata (motivo indicato nel nodo reason). È possibile riprovare il caricamento con lo stesso OrderID. Il messaggio ITN non avrebbe dovuto essere inviato. |
Timeout (o altra risposta come struttura non valida, campi obbligatori mancanti, altro stato di conferma) | - | Attendere l'ITN fino alla data di scadenza della transazione (a tal fine si consiglia un tempo di scadenza breve, ad esempio 15 minuti), informando il cliente del risultato tramite un processo separato (e-mail/sms). Dopo questo periodo, si consiglia di informarsi sullo stato della transazione (Stato della transazione). Se il metodo non restituisce alcuna transazione registrata (o solo gli stati di pagamento) FALLIMENTO), l'ordine di addebito può essere rinnovato con lo stesso ID ordine. In alternativa, si può cercare di annullare la transazione, accelerando così il processo di ottenimento dello stato finale della transazione ed eventualmente il processo di rinnovo del messaggio di avvio della transazione. A tale scopo, utilizzare il servizio di cancellazione delle transazioni (transazioneAnnulla) e confermare il suo funzionamento interrogando lo stato della transazione (come descritto sopra). |
Il trasferimento rapido è un metodo di pagamento che richiede al cliente di riscrivere autonomamente i dati di trasferimento forniti dal sistema. Il tipo di canale di pagamento è indicato dal parametro gatewayType in risposta alla chiamata di servizio "Querying the list of currently available Payment Channels". I dati di trasferimento possono essere visualizzati al cliente:
sul sito dell'AP (esecuzione della transazione basata sul modello standard di avvio della transazione descritto nella parte Inizio della transazione)
sul sito web del Partner (l'esecuzione della transazione senza reindirizzare il cliente al sito dell'AP è descritta di seguito)
Per una corretta trasmissione del messaggio, è necessario inviare al backend un messaggio standard di avvio della transazione (ad esempio
cURL), con un'intestazione
'BmHeader' di valore: 'pay-bm' (Per esteso, l'intestazione dovrebbe
apparire come questa BmHeader: pay-bm'.). Nel caso di un'intestazione
definita in modo errato o mancante, il messaggio verrà
letto male. Inoltre, si consiglia di passare il parametro
CustomerIP come descritto in IP utente (necessario per i processi di
reclamo, segnalazione) e richiesto è
per passare un parametro diverso da zero GatewayID (o gatewayType "Trasferimento rapido
".).
Implementazione dell'avvio delle transazioni in background (PHP)
$data = array(
'ServiceID' => '100047',
'OrderID' => '20150723144517',
'Amount' => '1.00',
'Description' => 'test bramki',
'GatewayID' => '71',
'Currency' => 'PLN',
'CustomerEmail' => 'test@bramka.pl',
'CustomerIP' => '127.0.0.0',
'Title' => 'Test title',
'ValidityTime' => '2016-12-19 09:40:32',
'LinkValidityTime' => '2016-07-20 10:43:50',
'Hash' => 'e627d0b17a14d2faee669cad64e3ef11a6da77332cb022bb4b8e4a376076daaa'
);
$fields = (is_array($data)) ? http_build_query($data) : $data;
$curl = curl_init('https://{host_bramki}/test_ecommerce');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('BmHeader: pay-bm'));
curl_setopt($curl, CURLOPT_POSTFIELDS, $fields);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
$curlResponse = curl_exec($curl);
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$response = curl_getinfo($curl);
curl_close($curl);
echo htmlspecialchars_decode($curlResponse);
Nel caso di pagamenti di questo tipo, il Sistema genera un insieme di
dati necessari per eseguire un trasferimento intra-bancario (e quindi veloce)
al conto bancario dell'AP. Questi dati vengono inseriti nella risposta all'inizio della transazione
, in un documento xml.
Risposta del sistema di pagamento all'avvio della transazione (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transaction>
<receiverNRB>47 1050 1764 1000 0023 2741 0516</receiverNRB>
<receiverName>Autopay</receiverName>
<receiverAddress>81-718 Sopot, ul. Powstańców Warszawy 6</receiverAddress>
<orderID>9IMYEH2AV3</orderID>
<amount>1.00</amount>
<currency>PLN</currency>
<title>9IMYEH2AV3 - weryfikacja rachunku</title>
<remoteID>9IMYEH2AV3</remoteID>
<bankHref>https://ssl.bsk.com.pl/bskonl/login.html</bankHref>
<hash> fe685d5e1ce904d059eb9b7532f9e06a64c34c1ea9fcf29b62afefdb7aad7b75 </hash>
</transaction>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ricevitoreNRB | SÌ | stringa{32} | Numero di conto del destinatario del bonifico (AP). |
2 | NomeRicevitore | SÌ | stringa{1,100} | Nome del destinatario del bonifico (AP). |
3 | indirizzo del ricevitore | SÌ | stringa{1,100} | Indirizzo del destinatario del bonifico (AP). |
5 | ID ordine | SÌ | stringa{1,32} | L'identificativo della transazione assegnato nel Servizio partner e comunicato all'inizio della transazione. |
6 | importo | SÌ | importo | Importo della transazione. Come separatore decimale si usa un punto fermo - '.'. Formato: 0,00; lunghezza massima: 14 cifre prima della virgola e 2 dopo la virgola. NOTE: Il valore consentito di una singola transazione nel Sistema di produzione è di min. 0,01 PLN, max. 100000,00 PLN (o fino al limite della singola Transazione della Banca per un trasferimento intrabancario). |
7 | valuta | SÌ | stringa{1,3} | Valuta della transazione. |
8 | titolo | SÌ | stringa{1,140} | Il titolo completo del trasferimento (ID insieme al campo Descrizione dall'inizio della transazione). |
9 | ID remoto | SÌ | stringa{1,20} | L'identificativo univoco del trasferimento assegnato nel sistema AP. |
10 | bancaHref | SÌ | stringa{1,100} | L'indirizzo di accesso al sistema bancario online, che può essere utilizzato per creare un pulsante "Vai alla banca". |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
NOTE: Utilizzare le informazioni di cui sopra per visualizzare i dati del trasferimento e reindirizzare l'utente alla pagina di login della banca.
Si tratta di una soluzione dedicata ai pagamenti BLIK, che consente di effettuare un pagamento senza inserire un codice BLIK (e senza dover lasciare il sito web). Il suo avvio con successo nel Sistema attiva l'avvio automatico dell'applicazione mobile della banca e la presentazione della transazione all'Utente per la conferma.
Potenziali benefici:
L'offerta del primo metodo di pagamento comodo e sicuro nel mCommerce che non richiede un numero di carta apre questo segmento a nuovi clienti,
un'esperienza di acquisto migliore per i clienti, che pagano più velocemente e in modo più comodo,
Frequenza d'acquisto e valore di vita del cliente - I clienti sono più disposti e più propensi ad acquistare da quei negozi in cui il processo di acquisto è
più conveniente,
Tasso di conversione - il servizio ha un maggiore controllo sul processo di acquisto e pagamento (il cliente non lo abbandona), il rischio di perdita del carrello è eliminato,
decisione rapida sulla transazione - in breve tempo la transazione è soggetta ad autorizzazione, rifiuto o annullamento,
Il servizio ha la possibilità di coprire l'analisi della fase stessa di effettuazione dei pagamenti
.
Un prerequisito per rendere disponibile BLIK 0 OneClick al Cliente è l'autorizzazione al
Servizio (possedere un account e avervi precedentemente effettuato l'accesso).
Se, durante un pagamento BLIK precedentemente effettuato, insieme ad altre
informazioni di pagamento, il Servizio ha inviato un UID Alias dedicato (descrizione dei
parametri Chiave BlikUID e Etichetta BlikUID in un'altra parte del documento
), e il cliente, al momento della conferma del pagamento nell'applicazione mobile
, ha indicato di voler ricordare il negozio, ciò ha avuto l'effetto di collegare in modo permanente (in genere per un periodo di 2 anni) il Cliente del servizio alla sua applicazione, ossia
registrando l'Alias UID. L'uso successivo di tale codice comporterà l'
autorizzazione della transazione senza il codice.
Si consiglia di non forzare il codice BLIK quando si seleziona un canale di pagamento BLIK. È invece opportuno visualizzare il collegamento ipertestuale "Voglio inserire il codice BLIK" sotto il pulsante "Acquista e paga" per consentire l'inserimento del codice al primo tentativo (nel caso in cui il Cliente voglia effettuare un pagamento BLIK da un'applicazione mobile diversa da quella in cui ha precedentemente memorizzato il dato Servizio).
Il servizio dovrebbe eseguire una Pre-transazione, con particolare attenzione a:
specificando il parametro GatewayID = 509 - indicazione del canale di pagamento BLIK,
indicazione dei parametri Chiave BlikUID e Etichetta BlikUID - indicazione del
richiesto nel BLIK 0 OneClick Alias UID (identificatore utente
)
specificando il parametro Codice di autorizzazione - se il cliente ha inserito il codice BLIK,
specificando il parametro BlikAMKey - se il cliente ha indicato l'etichetta dell'applicazione mobile della banca dall'elenco presentato nel Servizio,
gestione delle possibili risposte pre-transazione, compresa la gestione di "Response - no follow-up" e degli errori specifici di BLIK 0 OneClick:
(a) un errore in molte applicazioni mobili della banca (conferma=NOTCONFIRMED e motivo=ALIAS_NONUNIQUE) - visualizzare l'elenco delle etichette restituite nella pre-transazione dell'elenco di alias (coppie chiave + etichetta contenute nella struttura dell'oggetto Elenco BlikAML), per recuperare la chiave selezionata e inserirla nel parametro BlikAMKey un altro tentativo di pre-transazione
(b) errori di autorizzazione (conferma=NOTCONFIRMED e motivo di uno dei valori: ALIAS_DECLINATO, ALIAS_NON_TROVATO, BIGLIETTO_ERRATO, BIGLIETTO_SCADUTO, BIGLIETTO_USATO) - visualizzare il campo del codice Blik, per scaricarlo e inserirlo nel parametro Codice di autorizzazione un altro tentativo di pre-transazione
Il sistema consente di effettuare trasferimenti all'Ufficio delle imposte.
nome del validatore: US_TITLE_VALIDATOR
Title="/TI/______________/OKR/______/SFP/_______/TXT/_________{idtransremote_out}", gdzie:
(a) TI: sta per Taxpayer Identifier (P per PESEL o N per NIP o R per REGON). Ha effetto su:
(b) OKR: anno, tipo di periodo e numero del periodo per il quale viene effettuato il pagamento dell'imposta
Numero di periodo:
(c) SFP: simbolo del modulo di pagamento:
simbolo del modulo di pagamento | microcontabilità | NRB di costruzione a cui trasferire l'importo | Periodo per il quale viene pagata l'imposta |
---|---|---|---|
CIT | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | |
CIT-10Z | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | Crediti non relativi al periodo contabile. |
CIT-11R | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | Crediti non relativi al periodo contabile. |
CIT-6R | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | Crediti non relativi al periodo contabile. |
CIT-6AR | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | Crediti non relativi al periodo contabile. |
CIT-8 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | annuale |
CIT-8A | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | annuale |
CIT-8B | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | annuale |
CIT-9R | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | Crediti non relativi al periodo contabile. |
CIT-CFC | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | |
KP | NO | XX XXXX XXXX XXX0 0007 0000 | |
SD | NO | XX XXXX XXXX XXX0 0007 0000 | Crediti non relativi al periodo contabile. |
SD-2 | NO | XX XXXX XXXX XXX0 0007 0000 | Crediti non relativi al periodo contabile. |
PCC | NO | XX XXXX XXXX XXX0 0007 0000 | Crediti non relativi al periodo contabile. |
PCC-2 | NO | XX XXXX XXXX XXX0 0007 0000 | Crediti non relativi al periodo contabile. |
PCC-3 | NO | XX XXXX XXXX XXX0 0007 0000 | Crediti non relativi al periodo contabile. |
PIT | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | |
PIT-28 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | annuale |
PIT-36 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | annuale |
PIT-36L | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | annuale |
PIT-37 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | annuale |
PIT-38 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | annuale |
PIT-39 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | annuale |
PIT-4 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | mensile |
PIT-4R | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | annuale |
PPL | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | |
PIT-7 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | |
PIT-8A | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | mensile |
PIT-8AR | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | annuale |
PIT-CFC | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | |
PU1 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | Crediti non relativi al periodo contabile. |
PPD | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | |
DPI | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | |
PPW | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | |
IVA-7 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | mensile |
IVA-7K | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | trimestralmente. A partire dall'1.10, questi simboli saranno sostituiti da JPK_V7K e JPK_V7M. |
IVA-7D | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | trimestrale |
IVA-8 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | mensile |
IVA-9M | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | mensile |
IVA-10 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | Crediti non relativi al periodo contabile. |
IVA-12 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | |
IVA-14 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | |
VAP-1 | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | |
VAI | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | Crediti non relativi al periodo contabile. |
IVA-IM | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | |
IVA-Z | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | Crediti non relativi al periodo contabile. |
IVA-In | SÌ | LK 1010 0071 222Y XXXX XXXX XXXX | Crediti non relativi al periodo contabile. |
d) TXT: testo aggiuntivo (max 29 caratteri)
e) {idtransremote_out} → costante del titolo, che deve trovarsi alla fine della stringa. Non si devono incollare altri valori in questo punto.
Google Pay è un sistema di pagamento istantaneo e intuitivo di Google.
Google Pay è un prodotto che permette di ottenere i dati criptati della carta di pagamento di un cliente, consentendone l'addebito.
Per pagare tramite Google Pay, è necessario salvare la carta di pagamento sul proprio account Google, utilizzando una qualsiasi piattaforma di Google (ad esempio, l'acquisto di app su Google Play) o direttamente sul sito web di Google. Google Pay.
NOTE: Il servizio richiede la preventiva sottoscrizione di un accordo con l'operatore della carta
. Per maggiori dettagli, contattare il
Business Department di Autopay.
Dopo aver fatto clic su "Paga con Google Pay", sulla pagina del negozio viene visualizzato un modulo Google Pay. In esso, il cliente conferma il proprio account Google e la carta con cui intende pagare (in questa fase, può anche cambiare la carta con un'altra o aggiungerne una nuova). Lo script passa i dati codificati della carta sullo sfondo della tramite la funzione messaggiopoi il negozio deve accettarli e codificarli tramite la funzione base64 e infine inviarli nel parametro Token di pagamento insieme ad altri parametri (dati della transazione).
Sul proprio sito web, il negozio deve richiamare lo script fornito da Google con i dati del processore di pagamento sostituiti.
CONSIGLIO: Dettagli in Documentazione per sviluppatori di Google.
Schema dettagliato di comunicazione e scambio di dati
CONSIGLIO: Un esempio di come inviare una richiesta è disponibile all'indirizzo GitHub Autopay.
(a) I dati del processore di pagamento sono stati alterati:
const tokenizationSpecification = {
type: 'PAYMENT_GATEWAY',
parameters: {
'gateway': 'bluemedia',
'gatewayMerchantId': paybmApiResponse.acceptorId
}
};
b) I dati restituiti dal sistema di pagamento online AP trasferiti presso la struttura PaymentDataRequest.merchantInfo:
PaymentDataRequest.merchantInfo = {
merchantId: paybmApiResponse.merchantId,
merchantOrigin: paybmApiResponse.merchantOrigin,
merchantName: paybmApiResponse.merchantName,
authJwt: paybmApiResponse.authJwt,
};
CONSIGLIO: Un esempio completo di integrazione con Google Pay è disponibile all'indirizzo GitHub Autopay.
Per mantenere l'integrità estetica del design utilizzato sul sito web e sull'applicazione mobile di
, utilizzare la guida che
fornisce nel documento parti della documentazione per gli sviluppatori delle Linee guida del marchio
Google
per descrizioni di stile e pulsanti per le pagine web e per parti
Tutorial della documentazione per sviluppatori
Google,
dove troverete le informazioni necessarie per sviluppare un'applicazione mobile.
Implementazione di Apple Pay sul sito web del negozio.
Richiesta di contatto con il prodotto dell'infrastruttura di pagamento - necessità di supporto informatico.
- certificato di comunicazione - per la cosiddetta presentazione -identificativo del commerciante
- certificato di addebito - certificato di elaborazione dei pagamenti
Implementazione web in conformità con documento Apple Pay sul web
Preparazione di 2 endpoint sul lato del partner, in un dominio registrato con Apple (utilizzando 2 certificati di Apple):
- fino all'inizio della sessione
- per addebitare al cliente il costo del token di Apple.
SUGGERIMENTO: safari (il browser del cliente) comunica con l'endpoint di ritorno della sessione (menzionato sopra), dopodiché Apple interroga se stessa per la sessione Autopay.
NOTA: I certificati AP CSR per l'accettazione e per la produzione sono diversi).
Dopo averlo utilizzato nel processo di registrazione Apple, fornire all'AP un certificato firmato da Apple e inviarlo via Modulo di pagamento automatico
SUGGERIMENTO: Il cliente deve fornire il paese, la città, il dominio del sito web e l'e-mail della persona di contatto.
Nell'ambito dell'elaborazione dei pagamenti sul sito del partner, avviare una sessione API Apple.
Quindi restituire il token Autopay nel parametro PaymentToken start.
NOTA: La decodifica del token è responsabilità dell'AP.
Formato del token di pagamento: una fetta di un oggetto in formato json che l'API ApplePay restituisce:
EncryptedPaymentData {
String version;
String data;
String signature;
Header header;
}
Header {
String ephemeralPublicKey;
String publicKeyHash;
String transactionId;
String applicationData;
}
NOTA: Quando si invia una richiesta di pagamento ApplePayPaymentRequest, è necessario riempire il campo applicationData con il valore Base64-encoded orderId, come descritto nel documento documento ApplicationData.
Gli affiliati che desiderano incorporare una parte delle transazioni direttamente sul loro sito / nel loro carrello (nel cosiddetto modello WhiteLabel) possono farlo integrando il Widget Autopay.
Attualmente, il Widget Autopay supporta la raccolta dei dati della carta (all'interno del PaywayId 1500
/1503
) e Visa Mobile inizia (PaywayId 1523
)
IMPORTANTE! Il Partner non è autorizzato a memorizzare i dati della Carta (in particolare il numero della carta, il codice di sicurezza CVC, il CVV2), ad eccezione dei parametri trasmessi durante l'elaborazione dei pagamenti automatici da parte di AP, come descritto in questa sezione.
IMPORTANTE! Il sito web del Partner in cui viene utilizzata la funzionalità del widget Autopay deve essere criptato e l'IFRAME HTML con il widget deve essere incorporato in un indirizzo HTTPS con utilizzando il protocollo TLS.
IMPORTANTE! Il partner si impegna a presentare ad AP, in forma elettronica,
i seguenti documenti:
(a) una tantum (prima della conclusione del Contratto): un questionario SAQ-A PCI compilato (Sezione 2); il documento sarà fornito da AP o è disponibile per il download sul sito web: https://www.pcisecuritystandards.org
b) Su base trimestrale: il risultato dell'audit PCI ASV trimestrale che include una scansione di indirizzi/reti/domini IP esterni (pubblici) - IPv4 e/o IPv6. Tale audit deve essere condotto da uno degli appaltatori autorizzati elencati in:
https://www.pcisecuritystandards.org/assessors_and_solutions/approved_scanning_vendors
È necessario utilizzare l'SDK Autopay WidgetJS per incorporare e comunicare con il widget Autopay.
In breve, si tratta di incorporare l'IFRAME HTML con il widget e configurare l'SDK JS per gestire i messaggi (eventi) prodotti quando il titolare della carta interagisce con il widget.
Il messaggio finale è un evento con stato MODULO_INTERROTTO
incluso paymentToken
necessari per l'avvio delle transazioni backend sull'API del sistema di pagamento online AP.
Di seguito sono riportati alcuni esempi di come incorporare e diffondere facilmente un widget, utilizzando l'Autopay WidgetJS SDK, sia per la carta che per i canali VisaMobile.
L'SDK Autopay WidgetJS è disponibile all'indirizzo widget-nuovo/widget-comunicazione.min.js
una volta che è stato inserito nel <head>
<script src="?r=quot;https://testcards.autopay.eu/widget-new/widget-communication.min.js"></script>
si ottiene l'accesso all'oggetto WidgetConnection
var widgetConfigObject = { ... };
var widget = new WidgetConnection(widgetConfigObject)
che, se integrato con una configurazione sotto forma di oggetto JSON, consentirà una comunicazione completa con l'API Autopay e, di conseguenza, garantirà la ricezione di un evento con uno stato pari a MODULO_INTERROTTO
z paymentToken
.
Esempio di configurazione per i dati della carta
Configurazione:
{ language: 'pl', amount: 1.23, currency: 'PLN', serviceId: 123456 }
PaymentToken restituito:
{status: 'FORM_SUCCESS', message: 'ey...9', id: 'OGFlZTYyYTMtN2U2OS00MTU1LTgyNDctNmMwMGI2NjE5ZDQy'}
Esempio di configurazione per i dati VisaMobile
Configurazione:
{ language: 'pl', amount: 1.23, currency: 'PLN', serviceId: 123456, merchantName: 'ShopName' }
PaymentToken restituito:
{status: 'FORM_SUCCESS', message: 'ey...9', prefix: '48', phoneNumber: '666666666', id: 'OGFlZTYyYTMtN2U2OS00MTU1LTgyNDctNmMwMGI2NjE5ZDQy'}
Lingua
Determina la versione linguistica del widget in cui sarà presentato.
Nome del campo: lingua
Formato stringa
Valori: predefinito it
Attualmente sono supportate le seguenti lingue: cs
, de
, el
, it
, es
, fr
, hr
, hu
, esso
, it
, ro
, se
, sk
, sl
, uk
Importo della transazione
Importo della transazione
Nome del campo: importo
Formato galleggiante
Valori: un importo scritto in formato float, ad es: "PLN 1,23" è 1.23
importo: 1,23, valuta: 'PLN', serviceId: 123456, merchantName: 'ShopName'.
Valuta della transazione
Valuta della transazione
Nome del campo: valuta
Formato stringa
Valori: predefinito PLN
, altre valute in un formato compatibile con la configurazione attuale del servizio
Numero di servizio
Numero di servizio ricevuto da Autopay (dipende dall'ambiente di sviluppo)
Nome del campo: serviceId
Formato intero
Valori: di solito sei cifre
Tipo di ricorrenza (solo per le carte)
Indicazione del tipo di avvio della ricorrenza (Solo per il canale 1503 relativo all'avvio della ricorrenza)
Nome del campo: azione ricorrente
Formato stringa
Valori: 'INIT_WITH_REFUND', 'INIT_WITH_PAYMENT'.
Nome del negozio (solo per VisaMobile)
Nome visualizzato all'utente nella notifica VisaMobile nell'app mobile della banca (solo per il canale 1523 di VisaMobile)
Nome del campo: nome del commerciante
Formato stringa
Valori: Nome del negozio
IMPORTANTE! Il seguente esempio di codice HTML è stato creato a scopo illustrativo.
Per poterlo eseguire effettivamente sul proprio computer locale, il seguente file HTML deve essere collocato sotto un dominio locale (qualsiasi, può essere test.local
).
Questo HTML non può essere sparato nel browser come file locale, perché gli eventi JS scambiati tra l'IFRAME e la pagina sono verificati per la coerenza del dominio (quindi deve essere presente un dominio).
La pagina seguente ha lo scopo di imitare Front Merchant, mostrando quali elementi devono essere implementati per integrarsi con il Widget Autopay.
Nel browser, la seguente pagina di esempio è composta da tre sezioni:
PayButon
in bundle con l'SDK JS per controllare l'avvio del processo nel widget (in questo esempio, il pulsante si attiva solo quando riceve il messaggio che la convalida è corretta e i dati necessari per avviare il processo sono completi)Quando si seleziona un canale per la carta (payway: 1500 o 1503), viene caricata una vista dedicata al formato della carta (basata su HTML IFRAME). Quando nel widget vengono inseriti i dati completi e validi della carta, (grazie agli eventi di convalida) viene attivato il pulsante "Paga" sul front-end dell'esercente.
Suggerimento: Come si può vedere nell'esempio, è possibile supportare il canale VisaMobile anche nel modello WhiteLabel. L'implementazione/layout è analogo a quello del widget della carta, pertanto il codice sottostante contiene già entrambi i casi.
Convalida e completamento dei dati
L'SDK JS riceve eventi dal widget quando il widget Autopay viene inserito. STATO_DI_VALIDITÀ
con valore valido: falso
Una volta ottenuti i dati completi della carta, l'ultimo evento sarà STATO_DI_VALIDITÀ
con un valore di valido: vero
{status: 'VALIDITY_STATUS', message: null, valid: true, id: 'M2Zl...mU2'}
L'attivazione del pulsante può essere basata su questo evento Pulsante di pagamento
Suggerimento: Nell'ambiente di test, i pagamenti con carta si basano su un mock 3ds e un mock di autorizzazione. Ai diversi scenari corrispondono numeri di carta di prova dedicati. L'elenco completo dei casi di test è riportato in un'appendice separata.
Schermo DCC
Se lo scenario e la carta soddisfano le condizioni per ottenere un'offerta DCC, apparirà un'ulteriore schermata con una proposta di conversione di valuta per il titolare della carta.
Il titolare della carta può scegliere di utilizzare l'addebito della carta nella sua valuta nativa o di lasciare la valuta originale. In questa schermata avviene anche la convalida.
La selezione della valuta del titolare della carta non influisce sull'esercente e sull'importo originale della transazione, ma influisce sull'importo che verrà addebitato alla carta. Se il titolare della carta non desidera utilizzare l'offerta di conversione di valuta DCC, seleziona la valuta originale (in questo caso il PLN).
Ottenere un token
Il pulsante deve essere collegato all'SDK Autopay Widget JS, in modo che il clic su di esso attivi una chiamata al metodo widget.sendForm();
nella struttura WidgetConnection
Che alla fine si tradurrà in un evento MODULO_INTERROTTO
cioè ottenere il valore del paymentToken (nel campo messaggio
).
{status: 'FORM_SUCCESS', message: 'eyJ...n19', id: 'M2Z...ZmU2'}
Di seguito è riportato un diagramma dettagliato della comunicazione tra esercente, titolare di carta e sistemi di pagamento Autopay nel caso della cosiddetta integrazione WhiteLabel (ovvero utilizzando un widget della carta).
Trasferimento sicuro dei dati della carta al sistema Autopay e flusso completo delle transazioni:
paymentToken
Di seguito è riportato un esempio di una semplice implementazione HTML/JS che utilizza il widget VisaMobile (e il widget della carta)
{ 'status': 'FORM_SUCCESS', 'message': 'eyJrZ...', ... }
Cruciale per questa integrazione è il punto del codice JS responsabile della ricezione degli eventi, in particolare dell'evento status MODULO_INTERROTTO
come contiene nel campo messaggio
il valore del paymentToken che l'esercente deve passare al proprio backend per completare i parametri dell'API Autopay e consentire l'avvio del pagamento in Autopay.
Pagina di esempio
Nel browser, la seguente pagina di esempio è composta da tre sezioni:
PayButon
in bundle con l'SDK JS per controllare l'avvio del processo nel widget (in questo esempio, il pulsante si attiva solo quando riceve il messaggio che la convalida è corretta e i dati necessari per avviare il processo sono completi)Quando si seleziona un canale dedicato a VisaMobile, viene visualizzata una vista dedicata (basata su HTML IFRAME), dove l'inserimento del numero di telefono completo (grazie ai messaggi di convalida) porta all'attivazione del pulsante "Paga".
Convalida e completamento dei dati
Quando si inserisce un numero di telefono, l'Autopay Widget JS SDK riceve eventi dal widget STATO_DI_VALIDITÀ
con valore valido: falso
Una volta ottenuto il numero di telefono completo, l'ultimo evento sarà STATO_DI_VALIDITÀ
con un valore di valido: vero
{status: 'VALIDITY_STATUS', message: null, valid: true, id: 'M2Zl...mU2'}
L'attivazione del pulsante può essere basata su questo evento Pulsante di pagamento
Ottenere un token
Il pulsante deve essere collegato all'SDK Autopay Widget JS, in modo che il clic su di esso attivi una chiamata al metodo widget.sendForm();
nella struttura WidgetConnection
Che alla fine si tradurrà in un evento MODULO_INTERROTTO
cioè ottenere il valore del paymentToken.
{status: 'FORM_SUCCESS', message: 'eyJ...n19', prefix: '48', phoneNumber: '666666666', id: 'M2Z...ZmU2'}
Inizio della transazione:
paymentToken
Possibile annullamento della transazione (dal paywall di PayAutopay):
Carica e restituisce il risultato:
Il codice seguente è stato utilizzato per generare le integrazioni di esempio citate nelle sezioni con esempi di implementazione del Widget Carta e del Widget Visa Mobile
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Autopay Widget Integration Example</title>
<script src="?r=quot;https://testcards.autopay.eu/widget-new/widget-communication.min.js"></script>
<style>/* pominięte w przykladzie */</style>
</head>
<body>
<div>
<form onsubmit="submitForm(event)" novalidate>
<div class="form-group"><p>Transaction amount:</p><span>1,23 PLN</span></div>
<!-- przykładowa implementacja mechanizmu wyboru kanału płatności po stronie merchanta -->
<p>Choose payment method:</p>
<ul>
<li onclick="setPayway(event, 1500)">One time payment with card</li>
<li onclick="setPayway(event, 1503)">Remember your card</li>
<li onclick="setPayway(event, 1523)">Pay with VisaMobile</li>
</ul>
<!-- miejsce, w które wstrzyknięty zostanie HTML IFRAME z widget"em -->
<div class="form-group" id="iframe-wrapper">
<iframe id="iframe"></iframe>
</div>
<!-- przycisk wywołujący akcję w widget'cie -->
<button type="submit" id="button" disabled="disabled">PayButton</button>
</form>
</div>
<script type="text/javascript">
window.addEventListener('load', () => {
// pomocnicze zmienne (tylko na potrzeby przykładu)
var currentPayway = null;
var widget = null;
// przykładowe konfiguracje zależne od środowiska devloperskiego (tylko na potrzeby przykładu)
var AUTOPAY_CARDS_DOMAIN_ENV_PROD = 'https://cards.autopay.eu';
var AUTOPAY_CARDS_DOMAIN_ENV_TEST = 'https://testcards.autopay.eu';
var MERCHANTS_SERVICE_ID_ENV_PROD = 903555;
var MERCHANTS_SERVICE_ID_ENV_TEST = 903555;
// pomocnicza metoda obsługująca wybór kanału płatności i osadzenie widget'u
function setPayway (event, paywayId) {
if (currentPayway === paywayId) {
return;
}
currentPayway = paywayId
removeWidget();
disableSubmitButton();
markActiveIcon(event);
if (paywayId === 1500) {
startWidget('/widget-new/partner' , { language: 'en', amount: 1.23, currency: 'PLN', serviceId: MERCHANTS_SERVICE_ID_ENV_TEST });
return
}
if (paywayId === 1503) {
startWidget('/widget-new/partner' , { language: 'en', amount: 1.23, currency: 'PLN', serviceId: MERCHANTS_SERVICE_ID_ENV_TEST, recurringAction: 'INIT_WITH_REFUND' });
return
}
if (paywayId === 1523) {
startWidget('/widget-new/visamobile', { language: 'en', amount: 1.23, currency: 'PLN', serviceId: MERCHANTS_SERVICE_ID_ENV_TEST, merchantName: 'ShopName' });
return
}
}
// pomocnicza metoda (tylko na potrzeby przykładu) ustawiająca obramowanie na wybranym kanale płatności
function markActiveIcon (event) {
var currentActive = document.querySelector('ul li.active');
if (currentActive) {
currentActive.classList.remove('active');
}
var newActive = event.target;
if (newActive.nodeName.toLowerCase() === 'img') {
newActive = newActive.parentNode;
}
newActive.classList.add('active');
}
// główna metoda odpowiadająca za osadzenie IFRAME z widget'em i zestawienia komunikacji między nim a jego obiektowym reprezentantem WidgetConnection
function startWidget (widgetVariantUrl, widgetConfig) {
if (!widgetEvents || !WidgetConnection) {
return;
}
var iframeEl = document.getElementById('iframe');
iframeEl.src = AUTOPAY_CARDS_DOMAIN_ENV_TEST + widgetVariantUrl;
widget = new WidgetConnection(widgetConfig)
widget.startConnection(iframeEl).then(() => {
// obsłużenie głównego, finalnego event'u zawierającego wartość PaymentToken'a
widget.on(widgetEvents.formSuccess, function (message, eventData) {
console.log('payment token event =>', eventData);
console.log('payment token value:', message);
// w tym miejscu powinno być wywołanie API merchanta, aby przekazać paymentToken (message) do backend'u merchanta; <<<<<<<<<<<<<<<<<
})
// obsłużenie event'ów związanych z walidacją podczas wprowadzania danych w widget'cie przez użytkownika/cardholder'a
widget.on(widgetEvents.validityStatus, function (message, eventData) {
console.log('form validation status =>', eventData);
if (eventData.valid) {
enableSubmitButton();
} else {
disableSubmitButton();
}
})
// obsłużenie event'u związanego z walidacją w momencie wprowadzania danych w widget'cie przez użytkownika/cardholder'a
widget.on(widgetEvents.validationResult, function (message, eventData) {
console.log('form validation result =>', eventData);
if (eventData.valid) {
enableSubmitButton();
} else {
disableSubmitButton();
}
})
// obsłużenie event'u showModal
widget.on(widgetEvents.showModal, function () {
console.log('show modal');
})
})
}
// pomocnicza metoda (tylko na potrzeby przykładu) ustawiająca usuwanie widget'u dla innych, niż kartowe, kanałów płatnosći (w przykladzie jest kanał 106 PBL)
function removeWidget () {
if (!widget) {
return;
}
widget.stopConnection();
}
// pomocnicza metoda (tylko na potrzeby przykładu)
function enableSubmitButton () {
document.getElementById('button').removeAttribute('disabled');
}
// pomocnicza metoda (tylko na potrzeby przykładu)
function disableSubmitButton () {
document.getElementById('button').setAttribute('disabled', 'disabled');
}
// pomocnicza metoda (tylko na potrzeby przykładu) powiązująca naćiśnięcie aktywnego przycisku zapłać z wywołaniem sendForm() w obiekcie widget'u
function submitForm (event) {
event.preventDefault();
if (!widget || widget.invalid) {
return;
}
disableSubmitButton();
widget.sendForm();
}
window.setPayway = setPayway;
window.submitForm = submitForm
});
</script>
</body>
</html>
L'iFrame della carta (PayBmCheckout) non è più supportato, invece, per il pagamento con carta incorporata nel sito del partner, usare Widget della scheda.
I pagamenti automatici sono un modo estremamente comodo e sicuro per
effettuare transazioni ricorrenti. Consiste nella riscossione automatica dei
crediti da parte del cliente alle date di pagamento. Il servizio
deve essere prima attivato. Nel caso delle carte, ciò avviene tramite
reindirizzamento del cliente al modulo di attivazione del servizio. Per BLIK
, invece, accettando un pagamento automatico nell'applicazione mobile
. Una volta autorizzata con successo tale transazione di attivazione, l'AP trasmette al Partner un messaggio standard di modifica dello stato della transazione (ITN) e un messaggio di attivazione del servizio di
pagamento automatico (RPAN). Il messaggio RPAN contiene il campo clientHashche il
Partner identificherà il pagamento automatico specifico durante gli
addebiti successivi e la disattivazione del servizio.
Tutte le transazioni all'interno del ciclo di vita di un pagamento automatizzato (attivazione e addebiti) vengono elaborate all'interno di canali di pagamento dedicati (BLIK - GatewayID=522, Carte - GatewayID = 1503) o gatewayType="Pagamento automatico".. Quando si integrano i pagamenti automatici BLIK, è possibile specificare (nei dati forniti prima dell'integrazione) la durata dei pagamenti automatici attivati (illimitata per impostazione predefinita) o specificarla nell'operazione di inizializzazione (parametro Tempo di validità ricorrente).
L'attivazione del pagamento automatico consiste nell'autorizzazione della transazione di attivazione, nella comunicazione ITN e nel RPAN. Una volta ricevuto l'RPAN, il Partner è pronto a eseguire addebiti ricorrenti (o un clic).
Si tratta di attivare il servizio di pagamento automatico durante il pagamento di un servizio/bene (così RecurringAction=INIT_WITH_PAYMENT e il regolamento della transazione al Partner).
Il messaggio ITN inviato dopo un pagamento automatico è simile a quelli
ricevuti dopo i pagamenti una tantum (è solo esteso dal nodo
Dati ricorrentie - per i pagamenti con carta - Dati scheda).
Il processo di attivazione del servizio viene avviato dal sito del partner mediante l'avvio della transazione con il parametro Azione ricorrente consente di controllare il comportamento di del sistema:
(a) il valore di INIT_WITH_PAYMENT - corrisponde all'attivazione del servizio di pagamento automatico al momento del pagamento di un servizio/bene (la carta o il conto vengono addebitati con l'importo dovuto e i fondi del pagamento vengono trasferiti al Partner); nell'elenco dei canali di pagamento disponibili, il sistema presenta solo pagamenti automatici (a meno che non sia stato selezionato un canale di pagamento nel Servizio),
(b) il valore di INIT_WITH_REFUND - corrisponde all'attivazione del servizio di pagamento automatico al di fuori del processo di pagamento del servizio/merce (l'addebito sulla carta o sul conto viene effettuato con l'importo di 1 PLN, seguito dal ritorno automatico dei fondi sul conto del Cliente); nell'elenco dei canali di pagamento disponibili, il Sistema presenta solo i pagamenti automatici (se non è stato selezionato alcun canale di pagamento sul Sito web),
(c) il valore di INIT_SENZA_PAGAMENTO - corrisponde all'attivazione del servizio di pagamento automatico al di fuori del processo di pagamento del servizio/bene; valore supportato solo nel modello White-Label, per il metodo BLIK. L'importo iniziale per questo valore è 0,00.
d) nessun parametro (o vuoto) - a meno che non sia stato selezionato un canale di pagamento sul
Servizio, il Sistema visualizzerà tutti i
canali di pagamento disponibili per il Servizio (compresi quelli automatici) e lascerà al Cliente la decisione:
pagamento unico o avvio di un pagamento automatico.
NOTE: Non è consentito avviare transazioni di attivazione con il canale di pagamento automatico selezionato, ma senza la RecurringAction selezionata.
In alcuni casi (se risulta dalla risposta del metodo dati legali) sono richiesti anche i parametri Stato di accettazione ricorrente (con un valore di ACCETTATOil che significa che il Cliente ha letto e accettato i termini e le condizioni del pagamento automatico sul Sito Partner) e RecurringAcceptanceID.
L'attivazione del servizio di carta di pagamento automatico viene effettuata sui formati forniti da AP. Il cliente deve inserire i dati della carta: nome, cognome, numero di carta, data di scadenza e codice CVV.
In caso di pagamento automatico da un conto bancario (BLIK), l'autorizzazione avviene senza specificare i dati della carta: ad esempio con il codice BLIK (trasportato nei parametri iniziali in AuthorisationCode), o tramite BLIK OneClick Alias (trasportato nei parametri iniziali in BlikUIDKey/BlikUIDLabel). I pagamenti automatici per il metodo BLIK possono essere avviati in due varianti:
Una volta autorizzata la transazione, il Sistema AP trasmette al Servizio Partner un messaggio di modifica dello stato della transazione (ITN) e un messaggio di attivazione del servizio di pagamento automatico (RPAN). Il messaggio RPAN è dedicato agli eventi di attivazione del pagamento automatico e contiene il suo identificativo (ClientHash), che il Partner utilizzerà durante i successivi addebiti e disattivazioni del servizio. Il RPAN contiene anche informazioni sull'azione per il processo di pagamento automatico (RecurringAction, descritta sopra).
Al ricevimento di uno stato di pagamento positivo per l'attivazione del
pagamento automatico, viene inviato al Servizio un messaggio dedicato.
Formato del documento (XML)
<?xml version="1.0" encoding="UTF-8"?>
<recurringActivation>
<serviceID>ServiceID</serviceID>
<transaction>
<orderID>OrderID</orderID>
<remoteID>RemoteID</remoteID>
<amount>999999.99</amount>
<currency>PLN</currency>
<gatewayID>GatewayID</gatewayID>
<paymentDate>YYYYMMDDhhmmss</paymentDate>
<paymentStatus>PaymentStatus</paymentStatus>
<paymentStatusDetails>PaymentStatusDetails</paymentStatusDetails>
<startAmount>999998.99</startAmount>
<invoiceNumber>InvoiceNumber</invoiceNumber>
<customerNumber>CustomerNumber</customerNumber>
<customerEmail>CustomerEmail</customerEmail>
<customerPhone>CustomerPhone</customerPhone>
</transaction>
<recurringData>
<recurringAction>RecurringAction</recurringAction>
<clientHash>ClientHash</clientHash>
<expirationDate>YYYYMMDDhhmmss</expirationDate>
</recurringData>
<cardData>
<index>Index</index>
<validityYear>ValidityYear</validityYear>
<validityMonth>ValidityMonth</validityMonth>
<issuer>Issuer</issuer>
<bin>BIN</bin>
<mask>Mask</mask>
</cardData>
<hash>Hash</hash>
</recurringActivation>
Valori degli elementi: ID ordine, ID servizio, importo relativi a ciascuno dei pagamenti automatici attivati sono identici ai valori dei campi corrispondenti forniti dal Servizio all'avvio del rispettivo pagamento di inizializzazione.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1. | serviceID | SÌ | stringa{1,10} | L'ID del servizio partner, assegnato durante la registrazione del servizio, identifica in modo univoco il servizio partner nel sistema di pagamento online. |
2. | transazione -> orderID | SÌ | stringa{1,32} | L'identificativo della transazione assegnato nel Servizio partner e comunicato all'inizio della transazione. |
3. | transazione -> remoteID | SÌ | stringa{1,20} | Un identificativo alfanumerico della transazione assegnato dal Sistema di pagamento online. |
5. | transazione -> importo | SÌ | importo | Importo della transazione. Come separatore decimale si utilizza un punto fermo - ".". Formato: 0,00; lunghezza massima: 14 cifre prima del punto e 2 dopo il punto.NOTE: Il valore ammissibile di una singola transazione nel sistema di produzione è rispettivamente: - per le PBL - min. 0,01 PLN, max. PLN 100000,00 (o fino all'importo stabilito dalla banca che emette lo strumento di pagamento) - per le carte di pagamento - min. 0,10 PLN, max. PLN 100000,00 (o fino al limite individuale per una singola transazione presso la banca dell'emittente della carta) - per i bonifici veloci - min. 0,01 PLN, max. 100000,00 PLN (o fino al limite individuale della Banca per una singola transazione per un trasferimento intrabancario) - per BLIK - min. 0,01 PLN, max. 75000,00 PLN (o fino al limite individuale della Banca per una singola transazione per un trasferimento intrabancario) - per OTP - min. 100,00 PLN, max. 2000,00 PLN - per Alior Rat - min. 50,00 PLN, max. 7750,00 PLN |
6. | transazione -> valuta | SÌ | stringa{1,3} | Valuta della transazione. |
7. | transazione -> gatewayID | SÌ | stringa{1,5} | Identificatore del canale di pagamento attraverso il quale il cliente ha effettuato il pagamento. |
8. | transazione -> data di pagamento | SÌ | stringa{14} | L'ora in cui la transazione è stata autorizzata, trasmessa nel formato YYYMMDDhhmmss. (ora CET) |
9. | transazione -> paymentStatus | SÌ | enum | Stato di autorizzazione della transazione. Assume valori (transizioni di stato identiche al campo corrispondente in ITN): IN ATTESA - transazione avviata SUCCESSO - autorizzazione corretta della transazione, il Servizio riceve i fondi per la transazione FALLIMENTO - transazione non completata correttamente |
10. | transazione -> paymentStatusDetails | SÌ | enum | Stato dettagliato della transazione, il valore può essere ignorato dal Servizio. |
11. | transazione -> startAmount | NO | importo | L'importo della transazione indicato nel Link di pagamento (non include l'importo della commissione addebitata al cliente, se presente). La somma della commissione del Cliente e dell'Importo iniziale si trova nel campo dell'importo, poiché è il valore risultante della transazione). Un punto - '.' - viene utilizzato come separatore decimale. Formato: 0,00; lunghezza massima: 14 cifre prima del punto e 2 dopo il punto. |
12. | transazione -> numero fattura | NO | stringa{1,100} | Il numero del documento finanziario nel servizio. |
13. | transazione -> numero cliente | NO | stringa{1,35} | Numero di cliente nel servizio. |
14. | transazione -> customerEmail | NO | stringa{1,60} | Indirizzo e-mail del cliente. |
15. | transazione -> telefono del cliente | NO | stringa{9-15} | Numero di telefono dell'utente. |
16. | dati ricorrenti -> recurringAction | NO | stringa{1,100} | Azione nel processo di pagamento automatico. |
17. | dati ricorrenti -> clientHash | SÌ | stringa{1,64} | Identificatore di pagamento automatico. |
18. | dati ricorrenti -> data di scadenza | NO | stringa{14} | Scadenza del pagamento automatico, trasmessa nel formato YYYMMDDhhmmss. (ora CET) |
19. | cardData -> indice | NO | stringa{1, 64} | Indice della carta di pagamento utilizzata per il pagamento automatico (se viene utilizzata una carta). |
20. | cardData -> anno di validità | NO | stringa{4} | Validità della carta nel formato YYYY (se è stata utilizzata una carta). |
21. | data della carta -> mese di validità | NO | stringa{2} | Validità della carta in formato mm (se la carta è utilizzata). |
22. | cardData -> emittente | NO | stringa{64} | Emittente della carta, valori possibili: - VISA - MASTERCARD - MAESTRO - AMERICAN EXPRESS (attualmente non supportato) - DISCOVER (attualmente non supportato) - CENA (attualmente non supportata) - UNCATEGORIZZATO (emittente non riconosciuto) |
23. | cardData -> bin | NO | stringa{6} | Le prime 6 cifre del numero della carta. |
24. | cardData -> maschera | NO | stringa{4} | Le ultime 4 cifre del numero della carta. |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
CONSIGLIO: Elemento hash (messaggio) è usato per autenticare il
del documento. Il valore di questo elemento è calcolato come valore della funzione hash
da una stringa contenente i valori concatenati di tutti i campi
del documento e la chiave condivisa allegata. Per una descrizione di come viene calcolato l'hash
, vedere la sezione Sicurezza delle transazioni.
Risposta alla notifica
La risposta di notifica prevede uno stato HTTP di 200 (OK) e un testo
in formato XML (non codificato Base64), restituito dal
Partner Service nella stessa sessione HTTP, contenente una conferma di ricezione del messaggio
.
Struttura di conferma (XML)
<?xml version="1.0" encoding="UTF-8"?>
<confirmationList>
<serviceID>ServiceID</serviceID>
<recurringConfirmations>
<recurringConfirmed>
<clientHash>ClientHash</clientHash>
<confirmation>Confirmation</confirmation>
</recurringConfirmed>
</recurringConfirmations>
<hash>Hash</hash>
</confirmationList>
Elemento conferma è utilizzato per comunicare lo stato della verifica dell'autenticità della transazione da parte del Servizio partner. Il valore dell'elemento è determinato dalla verifica della correttezza del valore del parametro. serviceID, un confronto tra i valori dei campi ID ordine i importo nel messaggio di notifica e nel messaggio di avvio della transazione, oltre a verificare che l'hash calcolato dai parametri del messaggio corrisponda al valore passato nel campo hash del messaggio.
Per l'elemento sono previsti due valori conferma:
a) CONFERMATO - i valori dei parametri in entrambi i messaggi e il parametro hash corrispondono - la transazione è autentica;
b) NON CONFERMATO - i valori nei due messaggi sono diversi o c'è una mancata corrispondenza dell'hash - la transazione non è autentica;
CONSIGLIO: Elemento hash (in risposta a un messaggio) è usato per autenticare la risposta ed è calcolato a partire dai valori dei parametri della risposta. Per una descrizione di come viene calcolato il digest, fare riferimento alla sezione Sicurezza delle transazioni.
Se non c'è una risposta corretta alle notifiche inviate, il sistema di pagamento online farà un altro tentativo di trasmissione dopo che è trascorso un periodo di tempo specificato. Il servizio del Partner deve eseguire la propria logica di business (ad esempio, lanciare un servizio di pagamento automatico, spedire ecc. ClientHash.
Di seguito è riportato uno schema che descrive il rinnovo programmato dei messaggi (ci riserviamo
, tuttavia, la possibilità di rinnovare uno qualsiasi di essi in qualsiasi momento).
Numero di rinnovo | Intervallo fino al prossimo rinnovo |
---|---|
1-12 | 3 min |
13-156 | 10 min |
157-204 | 1 ora |
205-209 | 1 giorno |
NOTE: La ripetizione continua dell'identico messaggio da parte del Sistema indica una risposta mancante o errata da parte del Servizio e richiede da parte del Partner per una diagnosi urgente della causa.
Ricezione corretta dell'identificativo del servizio (ClientHash), rende il Partner pronto ad addebitare automaticamente al Cliente i beni/servizi acquistati dal Servizio. Il processo consiste in transazioni e comunicazioni ITN.
Di seguito viene illustrato il processo di addebito automatico al cliente del servizio/bene (quindi RecurringAction=MANUAL/AUTO e il regolamento della transazione al Partner).
Il messaggio ITN inviato dopo un pagamento automatico è simile a quelli ricevuti dopo i pagamenti una tantum. È esteso solo dal nodo RecurringData e (per i pagamenti con carta) CardData.
Per eseguire un caricamento automatico, il servizio partner deve eseguire una pre-transazione
con il parametro ClientHashcompatibile con il servizio di pagamento automatico (proveniente da RPAN) precedentemente attivato, con il parametro
Stato di accettazione ricorrente valore NON APPLICABILE
e il valore corrispondente del parametro Azione ricorrente:
a) AUTO - pagamento ricorrente (addebito senza coinvolgimento del cliente),
b) MANUALE - pagamento con un solo clic (addebito ordinato dal cliente, chiamato OneClick).
NOTE: La partecipazione del cliente all'opzione MANUALE, di solito, si limita a
richiamare un messaggio (selezionando nel Servizio l'opzione di pagamento con la carta memorizzata). Nella maggior parte dei casi, è necessaria un'ulteriore
autorizzazione in banca (sotto forma di codice 3DS o CVC). In tal caso, invece di un addebito
(e dello stato dell'ordine in risposta a una pre-traduzione), il sistema
restituirà un link per proseguire - questo è il comportamento predefinito del sistema nell'ambiente di test
. Per testare uno scenario di carico senza la necessità di
autorizzazioni aggiuntive, è necessario dichiarare la necessità di modificare la configurazione del Sistema
per la durata del test.
NOTE: Opzione non disponibile per i pagamenti automatici BLIK (BLIK OneClick).
Il partner può disattivare il servizio di pagamento automatico in qualsiasi momento. Il processo può consistere in un messaggio che ordina la disattivazione del e in un messaggio RPDN (dedicato agli eventi di cancellazione del servizio di pagamento automatico).
Può anche accadere che l'annullamento del servizio sia avviato da parte dell'AP (ad esempio su richiesta del cliente, della banca o dell'organizzazione della carta). In questo caso, il sistema invierà anche un messaggio RPDN.
Il servizio può essere disattivato tramite un messaggio dedicato. Tutti i parametri di vengono passati tramite il metodo POST (al file https://{host_gateway}/disattiva_ricorrenti). Il protocollo è sensibile alle maiuscole e alle minuscole sia nei nomi dei parametri che nei valori. I valori dei parametri passati devono essere codificati in UTF-8.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | stringa{1,10} | L'ID del servizio partner, assegnato durante la registrazione del servizio, identifica in modo univoco il servizio partner nel sistema di pagamento online. |
2 | MessaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio con una lunghezza di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID); il valore del campo deve essere unico per il sito partner. |
3 | ClientHash | SÌ | stringa{1,64} | Identificatore di pagamento automatico. |
n.d. | Hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
NOTE: L'elemento Hash (messaggio) viene utilizzato per autenticare il documento. Il valore di questo elemento è calcolato come valore di una funzione hash da una stringa contenente i valori concatenati di tutti i campi del documento e la chiave condivisa allegata.
In risposta alla notifica, viene restituito un testo formattato in XML nella stessa sessione HTTP
, contenente una conferma.
Struttura di conferma (XML)
<?xml version="1.0" encoding="UTF-8"?>
<confirmationList>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<recurringConfirmations>
<recurringConfirmed>
<clientHash>ClientHash</clientHash>
<confirmation>Confirmation</confirmation>
<reason>Reason</reason>
</recurringConfirmed>
</recurringConfirmations>
<hash>Hash</hash>
</confirmationList>
Elemento conferma è utilizzato per comunicare lo stato di verifica dell'autenticità dell'operazione da parte del Servizio. Il valore dell'elemento viene determinato verificando la correttezza dei valori dei parametri. serviceID e clientHash con quelli specificati nel messaggio RPAN all'inizio di un determinato pagamento di attivazione, oltre a verificare che l'hash calcolato dai parametri del messaggio corrisponda al valore passato nel campo Hash.
Per l'elemento sono previsti due valori conferma:
a) CONFERMATO - i valori dei parametri sono corretti e i parametri Hash sono coerenti - operazione autentica;
b) NON CONFERMATO - i valori in entrambi i messaggi non sono corretti o Hash mismatch - operazione non autentica;
NOTE: L'elemento hash (nel messaggio di risposta) è usato per autenticare la risposta ed è calcolato a partire dal valore dei parametri della risposta. Il valore di questo elemento è calcolato come valore di una funzione hash da una stringa contenente i valori concatenati di tutti i campi del documento (senza tag) e la chiave condivisa allegata. Per una descrizione dell'elemento Sicurezza delle transazioni.
Quando il pagamento automatico viene disattivato per un dato ClientHash, viene inviato un messaggio dedicato sotto forma di documento XML, è tramite protocollo HTTPS (porta predefinita 443), utilizzando il metodo POST, con un parametro denominato ricorrente. Questo parametro è memorizzato utilizzando il meccanismo di codifica del trasporto Base64.
Formato del documento (XML)
<?xml version="1.0" encoding="UTF-8"?>
<recurringDeactivation>
<serviceID>ServiceID</serviceID>
<recurringData>
<recurringAction>RecurringAction</recurringAction>
<clientHash>ClientHash</clientHash>
<deactivationSource>DeactivationSource</deactivationSource>
<deactivationDate>DeactivationDate</deactivationDate>
<recurringData>
<hash>Hash</hash>
</recurringDeactivation>
I valori degli elementi serviceID, clientHash relativi a ciascuno dei pagamenti ciclici disattivati sono identici ai valori dei campi corrispondenti forniti nel messaggio RPAN all'inizio del rispettivo pagamento di inizializzazione.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceID | SÌ | stringa{1,10} | L'ID del servizio partner, assegnato durante la registrazione del servizio, identifica in modo univoco il servizio partner nel sistema di pagamento online. |
2 | dati ricorrenti -> recurringAction | SÌ | stringa{1,100} | Azione nel processo di pagamento automatico (in questo caso, il valore DISATTIVA). |
3 | dati ricorrenti -> clientHash | SÌ | stringa{1,64} | Identificatore di pagamento automatico. |
4 | recurringData -> deactivationSource | SÌ | stringa{1,64} | Motivo della disattivazione del pagamento automatico. Questa descrizione va considerata come informativa, l'elenco dei valori ammessi è in continua crescita e la comparsa di nuovi valori non può comportare la non accettazione del messaggio RPDN. Di seguito sono riportati i valori attuali: - SERVIZIOcommissionato dai partner - ACQUIRENTEcommissionato dall'AP (ad esempio, al ricevimento di informazioni su fraudu) - BM_ITordinati dal cliente su fatture.autopay.eu - PAYBMderivanti dalla scadenza della carta. |
5 | dati ricorrenti -> data di disattivazione | SÌ | stringa{14} | L'ora di disattivazione del pagamento automatico, trasmessa nel formato YYYYMMDDhhmmss. (ora CET) |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
NOTE: L'elemento hash (messaggio) viene utilizzato per autenticare il documento. Il valore di questo elemento è calcolato come valore di una funzione hash da una stringa contenente i valori concatenati di tutti i campi del documento e la chiave condivisa allegata.
La risposta alla notifica prevede lo stato HTTP 200 (OKq) e un testo in formato XML (non codificato Base64), restituito dal Servizio nella stessa sessione HTTP, contenente la conferma della ricezione del messaggio.
Struttura di conferma (XML)
<?xml version="1.0" encoding="UTF-8"?>
<confirmationList>
<serviceID>ServiceID</serviceID>
<recurringConfirmations>
<recurringConfirmed>
<clientHash>ClientHash</clientHash>
<confirmation>Confirmation</confirmation>
</recurringConfirmed>
</recurringConfirmations>
<hash>Hash</hash>
</confirmationList>
Elemento conferma è utilizzato per comunicare lo stato di verifica dell'autenticità dell'operazione da parte del Servizio. Il valore dell'elemento viene determinato verificando la correttezza dei valori dei parametri. serviceID e clientHash con quelli specificati nel messaggio RPAN all'inizio di un determinato pagamento di inizializzazione e verifica che l'hash calcolato dai parametri del messaggio corrisponda al valore passato nel campo hash.
Per l'elemento sono previsti due valori conferma:
a) CONFERMATO - i valori dei parametri sono corretti e i parametri hash sono coerenti - operazione autentica
b) NON CONFERMATO - i valori in entrambi i messaggi non sono validi o hash mismatch - operazione non autentica
NOTE: L'elemento hash (nel messaggio di risposta) è utilizzato per l'autenticazione della risposta
ed è calcolato a partire dal valore dei parametri della risposta. Il valore
di questo elemento è calcolato come valore di una funzione hash da una stringa
contenente i valori hash di tutti i campi del documento (senza tag
) e la chiave condivisa inclusa. Per una descrizione di come
calcola l'hash, vedere la sezione Sicurezza delle transazioni.
Se non c'è una risposta corretta alle notifiche inviate, il Sistema farà un altro tentativo di comunicazione dopo un certo tempo. Il Servizio deve eseguire la propria logica aziendale (ad esempio, interrompere il pagamento automatico, l'invio di posta elettronica, ecc.
CONSIGLIO: Si consiglia di leggere anche le sezioni Monitoraggio delle comunicazioni ITN/ISTN/IPN/RPAN/RPDN i Schema di rinnovo dei messaggi ITN/ISTN/IPN/RPAN/RPDN.
La verifica dell'identità del pagatore può essere effettuata sulla base del
confronto tra i dati forniti per la verifica nei parametri iniziali
della transazione e i dati ottenuti dal pagamento registrato nel Sistema.
I campi del messaggio di avvio della transazione associati a un servizio (descrizione nella sezione Avvio di una transazione con parametri aggiuntivi):
Nome della verifica,
Nome della verifica,
VerificaStreet,
VerificaStreetHouseNo,
VerificaStradaSala n,
VerificaStreetPremiseNo,
VerificaCodice postale,
VerificaCittà,
VerificaNRB
I campi del messaggio ITN associati al servizio (descritti nella sezione Campi aggiuntivi nel messaggio ITN/IPN della transazione in entrata):
nodo clienteDati
verificaStato
nodo motivi della verifica
CONSIGLIO: Istruzioni dettagliate su come interpretare gli stati dei pagamenti e delle verifiche di in questo processo sono contenute nella sezione Campi aggiuntivi nel messaggio ITN/IPN della transazione in entrata.
L'avvio della transazione può essere effettuato con i parametri aggiuntivi descritti nelle sezioni seguenti.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | tipo | descrizione |
---|---|---|---|
8 | Lingua | stringa{1,2} | Selezione della lingua in cui i contenuti saranno presentati nel sistema. I valori accettabili sono: PL, EN, DE, CS, ES, FR, IT. L'uso di valori diversi da PL deve essere confermato durante l'integrazione e deve dipendere dall'effettiva scelta della lingua da parte del Cliente sul Sito web. |
9 | ClienteNRB | stringa{26} | Numero di conto del cliente, un parametro destinato esclusivamente ai Servizi partner che generano numeri di conto dedicati all'ordine o al cliente (cfr. Modello di regolamento per le transazioni dopo ogni pagamento). Sono ammesse solo cifre. Se durante l'integrazione è stato stabilito l'utilizzo di conti al di fuori della Polonia, il campo trasferisce l'IBAN e l'intervallo di dati previsto per il campo cambia in: caratteri latini alfanumerici (min. 15, max. 32 caratteri). |
10 | Codice Swift | stringa{8,11} | Il codice swift corrispondente al numero di conto indicato. Sono ammesse solo cifre. Parametro da fornire se durante l'integrazione è stato stabilito l'uso di account non polacchi. |
11 | Modalità di trasferimento estero | stringa{4,5} | Il sistema con cui deve essere effettuato il trasferimento del regolamento estero: SEPA (Single Euro Payments Area) - è possibile effettuare un bonifico in valuta euro all'interno degli Stati membri dell'Unione Europea, così come in altri Paesi del Vecchio Continente, ad esempio Islanda, Liechtenstein, Norvegia, Svizzera, Monaco o Andorra, SWIFT - trasferimenti all'estero non realizzabili con la SEPA (ad esempio, valuta diversa dall'euro), comporta costi di trasferimento più elevati rispetto alla SEPA. Valori accettabili: SEPA e SWIFT. Parametro da fornire se durante l'integrazione è stato stabilito l'uso di conti al di fuori della Polonia. |
12 | Paese fiscale | stringa{1,64} | Paese di residenza del pagatore. |
13 | ClienteIP | stringa{1,15} | L'indirizzo IP dell'utente, un parametro destinato solo ai servizi partner che eseguono il sistema in background (cfr. Pre-transazione e Richiesta dei dettagli del trasferimento per una transazione di trasferimento rapido). |
14 | Titolo | stringa{1,95} | Titolo del bonifico che compensa la transazione, un parametro destinato solo ai Servizi partner compensati tramite bonifico dopo ogni pagamento (cfr. Modello di regolamento per le transazioni dopo ogni pagamento). In alcuni casi, indipendentemente dall'AP, il titolo del trasferimento del regolamento può essere modificato autonomamente dalla Banca presso la quale è avvenuto il regolamento. Caratteri alfanumerici latini e caratteri dell'intervallo accettabili: dove il segno "/" sarà sostituito da un "-" per le transazioni in uscita. |
15 | NomeRicevitore | stringa{1,35} | Nome del destinatario del bonifico che compensa la transazione, parametro destinato solo ai Servizi partner compensati tramite bonifico dopo ogni deposito (cfr. Modello di regolamento per le transazioni dopo ogni pagamento). Caratteri alfanumerici latini e caratteri dell'intervallo accettabili: |
16 | Prodotti | stringa{1,10000} | Informazioni sui prodotti inclusi nella transazione, trasmesse come XML codificato con protocollo di trasporto Base64. La descrizione della struttura in parte Cestino prodotti. |
17 | Telefono del cliente | stringa{9-15} | Numero di telefono dell'utente. Sono ammessi solo i numeri. |
18 | ClientePesel | stringa{11} | Numero PESEL dell'utente. Sono ammessi solo i numeri. |
20 | Numero cliente | stringa{1,35} | Numero di cliente nel Servizio. |
21 | Numero di fattura | stringa{1,100} | Il numero del documento finanziario nel Servizio. |
22 | Nome dell'azienda | stringa{1,150} | Nome della società per la verifica automatica del contributore, ad esempio Cool Company. |
23 | Nip | stringa{1,10} | Il numero di partita IVA dell'azienda verificata, ad esempio 5851351185. Sono ammessi solo i numeri. |
24 | Regon | stringa{9,14} | Il numero di identificazione REGON dell'azienda verificata, ad esempio 191781561. Sono ammessi solo i numeri. |
25 | NomeVerifica | stringa{1,32} | Il nome di battesimo fornito dal Servizio per la verifica automatica del collaboratore, ad esempio Jan. Sono ammesse solo le lettere dell'alfabeto polacco. |
26 | NomeVerifica | stringa{1,64} | Nome indicato nel Servizio per la verifica automatica del contributore, ad esempio Kowalski. Sono ammesse solo le lettere dell'alfabeto polacco. |
27 | VerificaStreet | stringa{1,64} | Via fornita dal Servizio per la verifica automatica, ad esempio Długa. Sono ammesse solo lettere dell'alfabeto polacco e numeri. |
28 | VerificaStreetHouseNo | stringa{1,64} | Il numero civico fornito dal Servizio per la verifica automatica del contribuente. Sono ammesse solo lettere dell'alfabeto polacco e numeri. |
29 | VerificaStradaSalaNessuno | stringa{1,64} | Il numero di telaio fornito dal Servizio per la verifica automatica del contribuente. Sono ammesse solo lettere dell'alfabeto polacco e numeri. |
30 | VerificaStreetPremiseNo | stringa{1,64} | Numero del locale fornito dal Servizio per la verifica automatica del contribuente. Sono ammesse solo lettere dell'alfabeto polacco e numeri. |
31 | Codice postale di verifica | stringa{1,64} | Codice postale fornito sul sito web per la verifica automatica del contribuente, formato XX-XXX, ad esempio 80-180. Sono ammessi solo i numeri e il segno -. |
32 | VerificaCittà | stringa{1,64} | Città specificata nel Servizio per la verifica automatica del collaboratore, ad esempio Varsavia. Sono ammesse solo lettere dell'alfabeto polacco e numeri. |
33 | VerificaNRB | stringa{1,26} | Il numero di conto bancario fornito dal Servizio per la verifica automatica del contribuente, ad esempio 88154010982001554242710005. Sono ammessi solo i numeri. |
35 | Stato di accettazione ricorrente | stringa{1,100} | Informazioni sull'accettazione dei termini e delle condizioni di pagamento automatico che indicano se il Cliente ha accettato i termini e le condizioni di pagamento automatico o se l'accettazione deve essere imposta dal Sistema. Campo necessario per i pagamenti automatici nel modello WhiteLabel del servizio di pagamento fornito da AP al Cliente (il Cliente paga una commissione). La disponibilità dei termini e delle condizioni può essere verificata richiamando il metodo legalData. Valori ammessi: NON APPLICABILE - l'accettazione dei termini e delle condizioni non è richiesta (pagamento singolo o azione di addebito, cioè recurringAction con valore AUTO o MANUAL) ACCETTATO - dichiarazione di accettazione dei termini e delle condizioni del servizio dell'appaltatore (da allegare al contratto). RecurringAcceptanceID) PROMEMORIA - sul modulo della carta viene proposto il consenso per l'iscrizione alla carta, la cui spunta dà il via al pagamento automatico FORZA - Il consenso al salvataggio della carta è richiesto nel modulo della carta, altrimenti il pagamento non è possibile. NOTE: Disponibilità di opzioni ACCETTATO/PROMOSSO/FORZATO dipende dagli accordi commerciali (in particolare, determinare dove viene visualizzato il servizio di consenso/pagamento automatico). |
36 | Azione ricorrente | stringa{1,100} | Campo obbligatorio per i pagamenti automatici, che specifica le azioni possibili su un pagamento automatico. Valori ammessi: INIT_WITH_PAYMENT - attivazione del pagamento automatico con pagamento di beni/servizi INIT_WITH_REFUND - attivazione di un pagamento automatico seguito da una restituzione di pagamento INIT_WITHOUT_PAYMENT - attivazione del pagamento automatico senza pagamento di beni/servizi. L'importo iniziale del pagamento è pari a 0,00. AUTO - pagamento ciclico (addebito senza coinvolgimento del cliente) MANUALE - pagamento con un solo clic (addebito avviato dal cliente) NOTE: Opzione non disponibile per i pagamenti automatici BLIK (BLIK OneClick). DISATTIVA - per disattivare il pagamento automatico |
37 | ClientHash | stringa{1,64} | Identificatore automatico di pagamento. Questo parametro consente di assegnare uno strumento di pagamento (ad es. carta, BLIK) a un cliente in modo anonimo. In base ad esso, il Partner può attivare gli addebiti successivi nel modello di pagamento automatico. |
38 | Nome dell'operatore | stringa{1,35} | Il nome dell'operatore del numero di telefono indicato. Valori accettabili: Plus, Play, Orange, T-Mobile. |
39 | ICCID | stringa{12,19} | Numero della carta SIM del numero di telefono specificato. Valori ammessi (sono ammesse solo le cifre): Per Plus: 12 o 13 cifre Per Play, Orange, T-Mobile: 19 cifre |
40 | Codice di autorizzazione | stringa{6} | Un codice di autorizzazione al pagamento inserito dal lato del servizio/sistema (attualmente supportato in BLIK). Il suo utilizzo significa che non è necessario reindirizzare il cliente alla pagina del Canale di pagamento. Dovrebbe quindi essere inserito solo tramite la Pre-transazione. Il formato dipende dal Canale di pagamento. Per il BLIK effettuato in background (BLIK 0 o BLIK OneClick): 6 cifre. |
41 | Tipo di schermo | stringa{4,6} | Tipo di visualizzazione del modulo di autorizzazione al pagamento. Valori accettabili: IFRAME - non supportato COMPLETO. |
42 | Chiave BlikUID | stringa{1,64} | Chiave Alias UID (utilizzata in BLIK). È l'identificativo univoco dell'utente del Servizio. Caratteri alfanumerici latini e caratteri ammessi: _. |
43 | Etichetta BlikUID | stringa{1,20} | Etichetta Alias UID (utilizzata in BLIK), che verrà presentata al Cliente nell'applicazione bancaria per distinguere i conti presso il Partner. Si raccomanda di utilizzare il login, il nickname o l'indirizzo e-mail assegnato al conto autorizzato del Cliente. Se esiste la possibilità che i dati personali (ad esempio, l'indirizzo e-mail) vengano trasmessi al Partner. jan.kowalski@poczta.pl) rendere i dati riservati (sostituendo i 3 punti con alcuni caratteri, ad es. ja...ki@po...pl). Caratteri alfanumerici latini e caratteri dell'intervallo: . : @ - , spazio. |
44 | BlikAMKey | stringa{1,64} | Chiave alias dell'applicazione mobile della banca (utilizzata in BLIK). Si tratta dell'identificativo unico del vostro conto BLIK. Cifre accettabili. |
45 | URL di ritorno | stringa{1,1000} | Indirizzo dinamico di ritorno del pagamento che inizia con http/https. URL validi accettabili. Possono contenere IP, porta, sottodominio, caratteri polacchi e (dopo il dominio) parametri e caratteri speciali: ,'\+%$#_!=. |
46 | Modalità di transazione | stringa{2,10} | Possibilità di modificare il regolamento delle transazioni. Mancanza di parametri (retrocompatibilità) trattati come invio di valori COMUNI. Il parametro NESSUNO fa sì che la transazione venga trattata come una ricarica del saldo prepagato e non venga regolata. Valori accettabili: COMUNE NESSUNO |
47 | Token di pagamento | stringa{1,100000} | Token utilizzato nei portafogli Visa e Google Pay collocati direttamente sul sito web del Partner (autorizzazione senza reindirizzamento al Sistema). In questo caso, il sito web si integra direttamente con le API di Visa e/o Google per recuperare l'handle della carta. Il token ottenuto viene trasmesso al Sistema di pagamento online in forma codificata con il protocollo di trasporto Base64. NOTE: Il parametro non è necessario se la selezione dei canali di pagamento (e l'accesso al portafoglio) avviene direttamente sulla pagina del sistema di pagamento online. |
48 | Numero di documento | stringa{1,150} | Numero del documento finanziario. |
49 | RecurringAcceptanceID | stringa{1,10} | Identificatore dei termini e delle condizioni del servizio di pagamento automatico visualizzati sul Sito Web e accettati dal Cliente. Campo obbligatorio per i pagamenti automatici nel modello Etichetta bianca servizio di pagamento fornito da AP al Cliente (il Cliente paga una commissione). Il regolamento ID corrispondente alla lingua scelta (e al canale di pagamento) deve essere scaricato utilizzando il metodo dati legali. |
50 | Tempo di accettazione ricorrente | stringa{1,19} | Campo opzionale. Nel momento in cui il cliente accetta i termini e le condizioni, questo valore verrà verificato dal sistema con la durata dei termini e delle condizioni con il valore indicato. RecurringAcceptanceID. Valore campione: 2014-10-30 07:54:50. (Ora in CET) |
51 | Stato di accettazione della regolamentazione predefinita | stringa{1,100} | Informazioni sull'accettazione dei termini e delle condizioni del servizio di pagamento. Campo obbligatorio nel modello Etichetta bianca servizio di pagamento fornito da AP al Cliente (il Cliente paga una commissione). In caso contrario, potrebbe verificarsi un errore o la visualizzazione della pagina di transizione del sistema con la richiesta di accettare i termini e le condizioni. La disponibilità dei termini e delle condizioni può essere verificata richiamando il metodo dati legali. Valori ammessi: ACCETTATO - l'accettazione dei termini e delle condizioni previste nel servizio dell'appaltatore (da indicare insieme alla DefaultRegulationAcceptanceID). |
52 | DefaultRegulationAcceptanceID | stringa{1,10} | Identificatore dei termini e delle condizioni del servizio di pagamento fornito da AP al cliente e visualizzato sul sito web e accettato dal cliente. Campo necessario nel modello WhiteLabel del servizio di pagamento fornito da AP al Cliente (il Cliente paga la commissione). L'ID delle norme e dei regolamenti rilevanti per la lingua (e il canale di pagamento) selezionati deve essere recuperato con il metodo legalData. |
53 | Tempo di accettazione del regolamento predefinito | stringa{1,19} | Campo opzionale. L'ora in cui le norme e i regolamenti sono stati accettati dal cliente; questo valore sarà verificato dal sistema con l'ora delle norme e dei regolamenti con il DefaultRegulationAcceptanceID specificato; valore di esempio: 2014-10-30 07:54:50. (Ora in CET) |
54 | Tipo di portafoglio | stringa{1,32} | Payment Wallet Type, determina l'origine del parametro PaymentToken (se caricato). I valori disponibili sono: SDK_NATIVE - formato scheda nativo (SDK mobile) WIDGET - widget della carta (formato della carta prima dell'inizio della transazione) _ |
55 | Tempo di validità ricorrente | stringa{10} | Data di scadenza del pagamento automatico BLIK attivato, formato AAAA-MM-GG (valore di esempio: 2024-01-30). Se il parametro manca, verrà proposta una data di configurazione predefinita impostata durante l'integrazione (solitamente indefinita). |
56 | URL del servizio | stringa{1,1000} | Parametro che specifica l'indirizzo web del negozio da cui è stato avviato il pagamento, iniziando con http/https. URL valido accettabile. Può contenere IP, porta, sottodominio, caratteri polacchi, nonché (dopo il dominio) parametri e caratteri speciali: ,'+%$#_!= |
57 | Etichetta BlikPPL | stringa{1,35} | Etichetta del pagamento ricorrente BLIK, visualizzata nell'applicazione mobile quando viene accettato. Se il parametro manca, verrà utilizzato il suo valore predefinito (impostato durante l'integrazione). |
58 | NomeRicevitorePerFronte | stringa{1,35} | Il nome del beneficiario, visualizzato sul paywall o sull'app mobile, tra gli altri, quando si accetta un pagamento. Se il parametro manca, verrà utilizzato il suo valore predefinito (di solito l'URL del servizio). NOTE: Il servizio deve essere concordato con il mentore aziendale. Caratteri alfanumerici latini accettabili, caratteri compresi nell'intervallo: |
59 | Nome del titolare del conto | stringa{1,100} | Nome del proprietario del mezzo di pagamento. |
Il carrello dei prodotti viene inviato come parametro (metodo POST) denominato Products. Il suo valore è codificato con il protocollo di trasporto Base64.
Formato prima della codifica (XML)
<?xml version="1.0" encoding="UTF-8"?>
<productList>
<product>
<subAmount>SubAmount1</subAmount>
<params>Params1</params>
</product>
<product>
<subAmount>SubAmount2</subAmount>
<params>Params2</params>
</product>
…
<product>
<subAmount>SubAmountN</subAmount>
<params>ParamsN</params>
</product>
</productList>
Nodo elenco prodotti deve contenere almeno 1 elemento prodotto, ogni nodo prodotto devono contenere ciascuno un elemento di subImporto i params.
Elemento subImporto deve contenere un importo di prodotto positivo (il separatore decimale è un punto seguito da due cifre da un centesimo). La somma degli importi dei prodotti consecutivi deve essere uguale all'importo indicato nel parametro Importo (l'importo della transazione).
Se le condizioni di cui sopra non sono soddisfatte, il sistema restituisce un errore.
Elemento params possono essere utilizzati per comunicare informazioni specifiche sul prodotto. I nomi dei parametri e il loro significato sono soggetti a un accordo in forma operativa ogni volta durante l' integrazione.
Di seguito sono riportati alcuni esempi di parametri di prodotto e il loro significato.
<params>
<param name="productName" value="Nazwa produktu 1" />
</params>
<params>
<param name="productType" value="ABCD" />
<param name="productName" value="Nazwa produktu 1" />
</params>
<params>
<param name="productID" value="12456" />
</params>
<params>
<param name="idBalancePoint" value="12456" />
</params>
Nel caso in cui il Partner utilizzi la fatturazione TRASFERIMENTO DI MASSA, cioè
ogni transazione viene regolata immediatamente al momento del deposito e
i regolamenti sono effettuati a livello di prodotto/punto di regolamento (cioè vengono effettuati tanti trasferimenti di regolamento dopo il deposito quanti sono i prodotti nel paniere), e
non sono stati impostati dati di fatturazione fissi (o non sono stati impostati tutti i dati di fatturazione nella configurazione di fatturazione),
Il partner deve fornire in ogni prodotto i dati mancanti per la fatturazione di quel prodotto. I parametri disponibili che costituiscono i dati sono:
clienteNRB - numero di conto target per la fatturazione.
formato NRB (26 cifre con checksum). Se durante l'integrazione di
viene stabilito l'utilizzo di conti non polacchi, allora il campo trasferisce
IBAN e l'intervallo di dati previsto per il campo cambia in: caratteri alfanumerici
latini (min. 15, max. 32 caratteri). Specificando
valori in formato IBAN sarà necessario specificare nel prodotto
anche i parametri swiftCode, foreignTransferMode.
titolo - titolo del trasferimento di regolamento del prodotto. In alcuni
casi, al di fuori del controllo di AP, il titolo del trasferimento di regolamento può
essere modificato autonomamente dalla Banca da cui è avvenuto il
regolamento.
Caratteri alfanumerici latini accettati e caratteri dell'intervallo
:
NomeRicevitore - il nome del destinatario del bonifico che effettua la compensazione del prodotto.
Caratteri alfanumerici latini e caratteri dell'intervallo
accettati:
Esempio di applicazione dei parametri a un prodotto:
<params>
<param name="customerNRB" value="83109010980000000107285707" />
<param name="title" value="Rozliczenie produktu X" />
<param name="receiverName" value="Jan Kowalski" />
</params>
Esempio di parametri del carrello:
<params>
<param name="idBalancePoint" value="12456" />
<param name="productName" value="Zasilenie salda dla Autopay" />
</params>
Se durante la discussione del carrello prodotti è stato stabilito che il suo riepilogo deve essere visualizzato nella pagina del Sistema (la schermata di selezione del Canale di pagamento), è possibile specificare le etichette di ogni parametro utilizzato nel carrello. Il sistema può utilizzare l'etichetta predefinita del parametro oppure può accettarla all'inizio della transazione.
Il valore dell'attributo titolo sarà visualizzato prima del valore del parametro prodotto.
Esempio di attributo title
<params>
<param name="productName" value="Nazwa produktu 1" title="Nazwa"/>
<param name="productType" value="ABCD" title="Typ"/>
</params>
La notifica immediata di una modifica dello stato di una transazione può contenere
campi aggiuntivi (cfr. Schemi di preautorizzazione). La loro presenza è una questione di configurazione di
, determinata durante l'integrazione (per impostazione predefinita, solo il nodo viene inviato
. clienteDati).
Il fatto che si tratti di un messaggio ITN o IPN è determinato unicamente dalla presenza di un nodo prodotto.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | tipo | descrizione |
---|---|---|---|
11 | indirizzoIP | stringa{1,15} | L'indirizzo IP del cliente registrato dal front-end del sistema, o l'indirizzo trasmesso al sistema nel parametro CustomerIP, o l'IP da cui è stata avviata la transazione nel sistema. |
13 | numero cliente | stringa{1,35} | Numero di cliente nel Servizio. |
21 | titolo | stringa{1,140} | Titolo del pagamento. In alcuni casi, al di fuori del controllo di AP, il titolo del bonifico può essere modificato autonomamente dalla Banca in cui è avvenuto il pagamento del cliente. |
22 | dati del cliente> fNome | stringa{1,128} | Nome del pagatore. |
23 | dati del cliente> lNome | stringa{1,128} | Nome del pagatore. |
24 | dati del cliente> nome della strada | stringa{1,128} | Nome della via del pagatore. |
25 | dati del cliente-> viaCasaNo | stringa{1,10} | Numero civico del pagatore. |
26 | dati del cliente-> viaStaircaseNo | stringa{1,10} | Numero di gabbia del pagatore. |
27 | dati del cliente-> viaPremioNo | stringa{1,10} | Numero di sede del pagatore. |
28 | dati del cliente> codice postale | stringa{1,6} | Codice postale dell'indirizzo del pagatore. |
29 | dati del cliente; città | stringa{1,128} | Città pagante. |
30 | dati del cliente; nrb | stringa{1,26} | Conto bancario del pagatore. |
31 | DatiCliente> DatiMittente | stringa{1,600} | Dati del pagatore in forma indivisa. |
32 | verificaStato | enum | Elemento contenente lo stato di verifica del pagatore. Si tratta di un enum che consente i valori: In attesa, POSITIVO e NEGATIVO. |
n.d. | motivi della verifica | lettera | Un elenco dei motivi della verifica negativa o in sospeso. I motivi possono essere molteplici. |
33 | verificaStato | enum | Motivazione dettagliata in caso di esito negativo o di verifica in corso. Valori ammessi per la verifica negativa: - NOME - il nome o il cognome non corrispondono - NRB - il numero di conto non corrisponde - TITOLO - il titolo non corrisponde - STREET - il nome della via non corrisponde - HOUSE_NUMBER - numero civico non corretto - SCALA - numero di scala non corretto - PREMISE_NUMBER - il numero del locale non è corretto. - POSTAL_CODE - il codice postale non corrisponde - CITTA' - la città non è d'accordo - BLACKLISTED - il conto da cui è stato effettuato il pagamento è nella lista nera. - SHOP_FORMAL_REQUIREMENTS - il servizio verificato non soddisfaceva le condizioni formali Valori ammessi per la verifica in corso: - NEED_FEEDBACK - è in corso l'attesa che il servizio soddisfi le condizioni formali. NOTE: Per contare i valori di Hash, vengono presi i valori dei seguenti nodi: motivi della verifica, verificationStatusReason. |
60 | importo iniziale | importo | L'importo della transazione indicato nel Link di pagamento (non include l'importo della commissione addebitata al Cliente, se presente). La somma della commissione del Cliente e importo iniziale è sul campo importopoiché si tratta del valore della transazione risultante). Come separatore decimale si utilizza un punto - ".". Formato: 0,00; lunghezza massima: 14 cifre prima del punto e 2 dopo il punto. |
70 | dati ricorrenti-> recurringAction | stringa{1,100} | Azione nel processo di pagamento automatico (il significato e i valori ammessi sono descritti nella sezione Definizioni). |
71 | dati ricorrenti-> clientHash | stringa{1,64} | Identificatore del pagamento automatico generato dal PA e trasmesso al Partner al momento dell'attivazione del pagamento automatico. |
72 | dati ricorrenti-> data di scadenza | stringa{14} | Scadenza del pagamento automatico, trasmessa nel formato YYYMMDDhhmmss. (ora CET) |
73 | cardData-> indice | stringa{1,64} | Indice della carta (se viene utilizzata una carta). L'indice identifica una carta con una data di scadenza (la modifica della data o del numero della carta cambia il valore di questo parametro). |
74 | cartaDati-> validitàAnno | stringa{4} | Validità della carta nel formato YYYY (se è stata utilizzata una carta). |
75 | data della carta> mese di validità | stringa{4} | Validità della carta in formato mm (se la carta è utilizzata). |
76 | dati della carta | stringa{1,64} | Tipo di carta (se viene utilizzata una carta). Valori possibili: - VISA - MASTERCARD - MAESTRO - AMERICAN EXPRESS (attualmente non supportato) - DISCOVER (attualmente non supportato) - CENA (attualmente non supportata) - UNCATEGORIZZATO (emittente non riconosciuto) |
77 | cardData-> bin | stringa{6} | Le prime 6 cifre del numero della carta (se viene utilizzata una carta). Viene passato se il parametro cardData-> mask non viene passato. |
78 | schedaDati-> maschera | stringa{4} | Le ultime 4 cifre del numero della carta (se viene utilizzata una carta). Viene passato se il parametro cardData->bin non viene passato. |
90 | prodotto-> subImporto | importo | L'importo del prodotto utilizza un punto fermo come separatore decimale - '.'. Formato: 0,00; lunghezza massima: 14 cifre prima del punto e 2 dopo il punto. Nodo disponibile solo nelle comunicazioni IPN. |
91 | prodotto-> params | lettera | Parametri di prodotto successivi in base al formato del carrello all'avvio della transazione. Nodo disponibile solo nei messaggi IPN. |
NOTE: Per il conteggio dei valori di Hash, vengono presi gli attributi valore altri nodi prodotto.params.
Esempio di messaggio ITN/IPN con parametri aggiuntivi (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transactionList>
<serviceID>ServiceID</serviceID>
<transactions>
<transaction>
<orderID>OrderID</orderID>
<remoteID>RemoteID</remoteID>
<amount>999999.99</amount>
<currency>PLN</currency>
<gatewayID>GatewayID</gatewayID>
<paymentDate>YYYYMMDDhhmmss</paymentDate>
<paymentStatus>PaymentStatus</paymentStatus>
<paymentStatusDetails>PaymentStatusDetails</paymentStatusDetails>
<addressIP>127.0.0.1</addressIP>
<customerNumber>1111111</customerNumber>
<title>title</title>
<customerData>
<fName>fName</fName>
<lName>lName</lName>
<streetName>streetName</streetName>
<streetHouseNo>streetHouseNo</streetHouseNo>
<streetStaircaseNo>streetStaircaseNo</streetStaircaseNo>
<streetPremiseNo>streetPremiseNo</streetPremiseNo>
<postalCode>postalCode</postalCode>
<city>city</city>
<nrb>nrb</nrb>
<senderData>senderData</senderData>
</customerData>
<verificationStatus>verificationStatus</verificationStatus>
<verificationStatusReasons>
<verificationStatusReason>reason1</verificationStatusReason>
<verificationStatusReason>reason2</verificationStatusReason>
<verificationStatusReason>reason3</verificationStatusReason>
</verificationStatusReasons>
<startAmount>999998.99</startAmount>
<recurringData>
<recurringAction>RecurringAction</recurringAction>
<clientHash>ClientHash</clientHash>
<expirationDate>YYYYMMDDhhmmss</expirationDate>
</recurringData>
<cardData>
<index>Index</index>
<validityYear>ValidityYear</validityYear>
<validityMonth>ValidityMonth</validityMonth>
<issuer>Issuer</issuer>
<bin>BIN</bin>
</cardData>
<product>
<subAmount>SubAmount</subAmount>
<params>
<param name="idBalancePoint" value="idBalancePoint"/>
<param name="invoiceNumber" value="invoiceNumber"/>
<param name="customerNumber" value="customerNumber"/>
<param name="subAmount" value="SubAmount"/>
</params>
</product>
</transaction>
</transactions>
<hash>Hash</hash>
</transactionList>
Stato del pagamento | Stato di verifica | Dettagli della verifica (verificationStatusReasons) | Dettagli |
---|---|---|---|
IN ATTESA | IN ATTESA | Vuoto | Il cliente ha selezionato il metodo di pagamento. |
SUCCESSO | IN ATTESA | Vuoto | La transazione è stata pagata, il sistema è in attesa di recuperare i dati del contribuente dal conto. |
SUCCESSO | IN ATTESA | BISOGNO DI UN RISCONTRO | Autopay è in attesa che il Partner soddisfi le condizioni formali. |
SUCCESSO | POSITIVO | Vuoto | La verifica ha avuto esito positivo. |
SUCCESSO | NEGATIVO | Elenco dei motivi di NEGATIVO | Verifica negativa. |
Stato del pagamento | Stato di verifica | Dettagli della verifica (verificationStatusReasons) | Dettagli |
---|---|---|---|
IN ATTESA | IN ATTESA | Vuoto | Il cliente ha selezionato il metodo di pagamento. |
FALLIMENTO | IN ATTESA | Vuoto | La transazione non è stata completata correttamente. Lo stato di verifica non verrà fornito. |
Il messaggio ITN per una transazione in entrata contiene, oltre allo stato di pagamento (campo Stato del pagamento) una descrizione dettagliata dello stato (campo pagamentoStatoDettagli). Questa descrizione va considerata come informativa, l'elenco dei valori ammessi è in continua crescita e la comparsa di nuovi valori non può comportare la non accettazione del messaggio ITN.
Valore del campo | Significato del campo |
---|---|
AUTORIZZATO | transazione autorizzata da un Canale di pagamento |
ACCETTATO | transazione approvata dal Call Center (ad esempio, a seguito di un reclamo andato a buon fine) |
RIFIUTATO | Transazione interrotta da un canale di pagamento (banca/agente di compensazione) |
RIFIUTATO_DA_UTENTE | Transazione terminata dal cliente |
IMPORTO_ERRATO | è stato pagato un importo diverso da quello indicato all'inizio della transazione |
SCADUTO | transazione scaduta |
ANNULLATO | una transazione annullata dal Servizio Partner o dal Call Centre (ad esempio su richiesta del Cliente). Non è possibile avviare una nuova transazione o continuare una transazione precedentemente avviata con la stessa ID ordine |
RICORSIONE_INATTIVA | errore ciclico nell'attività di pagamento |
ALTRO_ERRORE | si è verificato un altro errore durante l'elaborazione della transazione |
Valore del campo | Significato del campo | Codice di errore dell'organizzazione della scheda opzionale |
---|---|---|
ERRORE_DI_CONNESSIONE | errore di connessione con la banca dell'emittente della carta di pagamento | ✔ |
LIMITE_DI_CARTA_SUPERATO | errore nei limiti della carta di pagamento | ✔ |
ERRORE DI SICUREZZA | errore di sicurezza (ad es. cvv errato) | ✔ |
NON ONORE | Rifiuto dell'autorizzazione in banca; suggerimento di contattare il cliente con l'emittente della carta | ✔ |
TREEDI_NEGATIVO | transazione non riuscita in 3DS | ✔ |
CARTA_EXPIRED | carta non valida | ✔ |
NUMERO_CARTA_ERRATA | numero di carta errato | ✔ |
FRODE_SUSPETTO | sospetto di frode (ad esempio, smarrimento della carta, ecc.) | ✔ |
STOP_RECURRING | impossibilità di ripetizione a causa dell'annullamento delle istruzioni del cliente | ✔ |
VUOTO | transazione abbandonata o errore di comunicazione | ✖ |
NON CLASSIFICATO | altri errori | ✔ |
Valore del campo | Significato del campo |
---|---|
FONDI_INSUFFICIENTI | Mancanza di fondi. Messaggio consigliato da visualizzare per il cliente: Pagamento non riuscito - rifiuto della banca. Verificare il motivo del rifiuto nella domanda della banca. Se il motivo è che avete superato il limite, potete aumentarlo contattando la vostra banca. |
LIMIT_EXCEED | Errore di limite (ad es. importi). Messaggio consigliato da visualizzare al cliente: Pagamento non riuscito - rifiuto della banca. Controllare il motivo del rifiuto nella domanda della banca.... Se il motivo è che avete superato il limite, potete aumentarlo contattando la vostra banca. |
BAD_PIN | è stato inserito un PIN errato al momento della conferma della transazione |
EMITTENTE_DECISO, UTENTE_DECISO, SEC_DECISO | Transazione terminata dal cliente |
TIMEOUT i AM_TIMEOUT | timeout nella comunicazione con l'applicazione mobile della banca |
USER_TIMEOUT | timeout in attesa della conferma della transazione da parte del cliente |
Nel caso di un partner che utilizza struttura estesa (Cestino prodotti con più punti di fatturazione), il sistema fornisce una notifica indipendente dei cambiamenti di stato per ciascun prodotto. Questo servizio ha senso se i singoli punti di fatturazione devono ricevere le proprie notifiche. In questo caso, la configurazione dell'IPN (indirizzo per le notifiche, campi da includere nel messaggio, ecc.) è memorizzata proprio a livello di configurazione del punto di fatturazione. La struttura dell'IPN è simile a quella dell'ITN (estesa solo dal nodo prodotto simile a quello descritto nel capitolo Campi aggiuntivi nel messaggio ITN/IPN della transazione in entrata, integrato solo dalla ripetizione dell'importo subImporto in params). Esempio di IPN nella sottosezione Campi aggiuntivi nel messaggio ITN/IPN della transazione in entrata).
È possibile fornire messaggi relativi a tutte le erogazioni (liquidazioni, erogazioni a saldo e rimborsi) effettuate dal Sistema nell'ambito del servizio di pagamento. Poiché il servizio non è abilitato di default, la necessità di questo servizio, insieme all'indirizzo postale ISTN, deve essere richiesta dal Partner durante la determinazione dei requisiti.
Se la comunicazione ISTN viene attivata con successo, il Sistema
trasmette immediatamente le notifiche relative all'ordine dell'operazione di regolamento (eventuali prelievi/restituzioni) e alla modifica del suo stato.
https://sklep_nazwa/odbior_informacji_o_rozliczeniu
Questa notifica consiste nell'invio da parte del Sistema di un documento XML contenente i nuovi stati delle transazioni. Il documento viene inviato tramite il protocollo HTTPS (porta predefinita 443). Il documento viene inviato tramite il metodo POST, come parametro HTTP denominato transazioni. Questo parametro è memorizzato utilizzando il meccanismo di codifica di trasporto Base64.
Formato del documento (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transactionList>
<serviceID>ServiceID</serviceID>
<transactions>
<transaction>
<isRefund>true/false</isRefund>
<productID>ProductID</productID>
<orderID>OrderID</orderID>
<orderOutID>OrderOutID</orderOutID>
<remoteID>RemoteID</remoteID>
<remoteOutID>RemoteOutID</remoteOutID>
<amount>999999.99</amount>
<currency>PLN</currency>
<transferDate>YYYYMMDDhhmmss</transferDate>
<transferStatus>TransferStatus</transferStatus>
<transferStatusDetails>TranasferStatusDetails</transferStatusDetails>
<title>Title</title>
<receiverBank>ReceiverBank</receiverBank>
<receiverNRB>ReceiverNRB</receiverNRB>
<receiverName>ReceiverName</receiverName>
<receiverAddress>ReceiverAddress</receiverAddress>
<senderBank>SenderBank</senderBank>
<senderNRB>SenderNRB</senderNRB>
</transaction>
</transactions>
<hash>Hash</hash>
</transactionList>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceID | NO | stringa{1,10} | L'ID del servizio partner, assegnato durante la registrazione del servizio, identifica in modo univoco il servizio partner nel sistema di pagamento online. |
2 | isRefund | NO | Booleano | Informazioni sul fatto che l'ISTN si riferisca alla restituzione di una transazione (true) o al normale regolamento (false). |
3 | ID prodotto | NO | stringa{1,36} | L'identificativo del prodotto fatturato dal paniere di prodotti della transazione in entrata; il valore del campo deve essere unico per il Servizio partner. |
4 | ID ordine | NO | stringa{1,32} | Identificatore di transazione in ingresso, composto da un massimo di 32 caratteri alfanumerici latini; il valore del campo deve essere unico per il Servizio partner. |
5 | orderOutID | NO | stringa{1,32} | Identificatore della transazione in uscita, composto da un massimo di 32 caratteri alfanumerici latini. Il campo può essere assegnato dal Servizio (nel caso di un ordine di fatturazione) o dal Sistema di pagamento online. |
6 | ID remoto | NO | stringa{1,20} | Identificativo alfanumerico della transazione in entrata assegnato dal Sistema di pagamento online (dato se un pagamento è collegato al regolamento). |
7 | remoteOutID | NO | stringa{1,20} | L'identificativo alfanumerico dell'operazione di regolamento assegnato dal Sistema di pagamento online. |
8 | importo | SÌ | importo | Importo della transazione. Un punto - '.' - viene utilizzato come separatore decimale. Formato: 0,00; lunghezza massima: 14 cifre prima del punto e 2 dopo il punto. |
9 | valuta | SÌ | stringa{1,3} | Valuta della transazione. |
40 | data di trasferimento | NO | stringa{14} | L'ora in cui la transazione è stata autorizzata, trasmessa nel formato YYYMMDDhhmmss. (ora CET). Si verifica solo per transferStatus=SUCCESS. |
41 | transferStatus | SÌ | enum | Stato di autorizzazione dell'operazione di regolamento. Adotta i seguenti valori: - PENDING - trasferimento in corso - SUCCESSO - trasferimento ordinato alla banca - FALLIMENTO - il trasferimento non può essere effettuato, ad esempio numero di conto sbagliato. |
42 | transferStatusDetails | NO | enum | Stato dettagliato della transazione, valore che può essere ignorato dal Servizio partner. Accetta i seguenti valori (l'elenco può essere esteso): - AUTORIZZATO - transazione presentata per l'esecuzione in banca - CONFIRMED - transazione confermata in banca (denaro inviato fisicamente) - ANNULLATO - transazione annullata dal servizio partner o dal call center (ad esempio, su richiesta del servizio). - ANOTHER_ERROR - si è verificato un altro errore di elaborazione della transazione |
43 | titolo | NO | stringa{1,140} | Titolo del bonifico. In alcuni casi, al di fuori del controllo di AP, il titolo del bonifico può essere modificato autonomamente dalla Banca da cui è stato effettuato il regolamento. Caratteri alfanumerici latini e caratteri dell'intervallo accettabili: ĘęÓ󥹌śŁłŻżŹźĆćŃń\\s.-/,!@#%\^\*()\_=+\[\]{};:? dove il segno "/" sarà sostituito da un "-" per le transazioni in uscita. |
44 | ricevitoreBanca | NO | stringa{1,64} | Il nome della banca presso la quale il Sistema ha effettuato il bonifico. |
45 | ricevitoreNRB | NO | stringa{26} | Il numero di conto bancario del destinatario del bonifico. |
46 | NomeRicevitore | NO | stringa{1,140} | Nome del destinatario del trasferimento. Caratteri alfanumerici latini e caratteri dell'intervallo accettabili: |
47 | indirizzo del ricevitore | NO | stringa{1,140} | Indirizzo del destinatario del trasferimento. Caratteri alfanumerici latini e caratteri dell'intervallo accettabili: |
48 | mittenteBanca | NO | stringa{1,64} | Il nome della banca attraverso la quale il Sistema ha effettuato il bonifico. |
49 | mittenteNRB | NO | stringa{26} | Numero di conto corrente bancario dell'ordinante del bonifico. |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
In risposta alla notifica, ci si aspetta un testo in formato XML (non codificato Base64), restituito dal Servizio partner nella stessa sessione HTTP, contenente una conferma di ricezione dello stato della transazione.
Struttura di conferma (XML)
<?xml version="1.0" encoding="UTF-8"?>
<confirmationList>
<serviceID>ServiceID</serviceID>
<transactionsConfirmations>
<transactionConfirmed>
<remoteOutID>RemoteOutID</remoteOutID>
<confirmation>Confirmation</confirmation>
</transactionConfirmed>
</transactionsConfirmations>
<hash>Hash</hash>
</confirmationList>
Elemento conferma è utilizzato per comunicare lo stato della verifica dell'autenticità della transazione da parte del servizio partner. Il valore dell'elemento è determinato dalla convalida del valore del parametro serviceID e dalla verifica che l'hash calcolato corrisponda al valore passato nel campo hash.
Per questo elemento sono previsti due valori:
a) CONFERMATO - il parametro hash è coerente - transazione autentica;
b) NON CONFERMATO - il parametro hash è inconsistente - transazione non autentica;
Se non c'è una risposta corretta alle notifiche inviate, il Sistema
farà ulteriori tentativi di comunicare un nuovo stato dopo un tempo specificato
. Il Servizio partner deve eseguire la propria logica aziendale,
solo dopo il primo messaggio relativo a un determinato stato di pagamento.
CONSIGLIO: Vale la pena di dare un'occhiata a Schema di riproduzione dei messaggi ITN/ISTN/IPN/RPAN/RPDN.
Nel modello di base, il Sistema fornirà solo lo stato SUCCESSOTuttavia, è possibile una notifica più precisa
. L'opzione completa deve essere
notificata durante l'integrazione e comporta il seguente schema di
transizioni di stato.
Un ordine per una transazione di regolamento invia uno stato IN ATTESA. In seguito, il sistema fornirà SUCCESSO o FALLIMENTO. Per le transazioni per le quali si è verificato lo status SUCCESSOnon dovrebbe più esserci un cambio di stato in FALLIMENTO. È tuttavia possibile che si verifichi una modifica dello stato di dettaglio (i successivi messaggi di modifica dello stato di dettaglio sono solo informativi e non devono comportare la riesecuzione della logica aziendale).
In casi particolari (ad esempio un errore della banca), una transazione originariamente confermata può essere passata per una nuova esecuzione, e quindi cambiare il suo stato a IN ATTESA e di nuovo a SUCCESSO.
Un altro caso particolare può essere lo stato di FALLIMENTO (ad esempio dopo un errore interno del sistema
), poi sostituito dallo stato dell'elemento SUCCESSO.
Per costruire una vista di selezione dei metodi di pagamento nel servizio, il sistema consente di interrogare da remoto l'elenco corrente dei canali di pagamento. Per farlo, chiamare il metodo gatewayList (https://{host_gateway}/gatewayList/v3) con parametri corrispondenti (in formato JSON). Tutti i parametri sono trasmessi utilizzando la tecnologia REST. Il protocollo è sensibile alle maiuscole sia nei nomi dei parametri che nei valori. I valori dei parametri passati devono essere codificati in UTF-8.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | intero | ID servizio partner. |
2 | MessaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio con una lunghezza di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID). Il valore del campo deve essere unico per il Servizio partner. |
3 | Valute | SÌ | stringa{0,1000} | Elenco di valute di cui si vuole restituire l'elenco dei canali disponibili. L'elenco deve avere un minimo di un elemento. I valori accettabili sono: PLN, EUR, GBP, USD. |
4 | Lingua | SÌ | stringa{2} | Lingua in cui verranno restituite le descrizioni dei metodi di pagamento. Valori accettabili: PL,EN,DE,FR,IT,ES,CS,RO,SK,HU,UK,EL,HR,SL,TR,BG. |
5 | Hash | SÌ | stringa{64} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni |
Esempio di messaggio
{
"ServiceID": 47498,
"MessageID": "11111111111111111111111111111111",
"Currencies":"PLN,EUR",
"Language": "PL",
"Hash": "306519f632e53a5e662de0125da7ac3f8135c7e4080900f2b145d4b25ff1b55d"
}
In risposta a una richiesta, vengono restituiti 2 elenchi di definizioni nella stessa sessione HTTP:
a) Canali di pagamento (nodo gatewayList
)
b) Gruppi di pagamento (nodo gatewayGruppi
)
Di seguito viene riportata una descrizione dettagliata del messaggio restituito:
nome | richiesto | tipo | descrizione | |
---|---|---|---|---|
1 | risultato | SÌ | stringa{1,5} | Stato della risposta. Valori accettabili: - OK - ERRORE |
2 | erroreStato | SÌ | stringa{1,100} | Stato di errore, da compilare in caso di errore (altrimenti nullo). |
3 | descrizione | SÌ | stringa{1.500} | Descrizione dell'errore, da compilare in caso di errore (altrimenti null). |
4 | gatewayGruppi | SÌ | lettera | Un elenco contenente i gruppi di pagamento. |
4.1 | tipo | SÌ | stringa{1,20} | Tipo di gruppo di pagamento. Ogni definizione di pagamento è assegnata a uno dei tipi. |
4.2 | titolo | SÌ | stringa{1,50} | Nome del gruppo di pagamento. |
4.3 | breveDescrizione | NO | stringa{1,200} | Breve descrizione del gruppo di pagamento. |
4.4 | descrizione | NO | stringa{1,1000} | Descrizione dettagliata del gruppo di pagamento. |
4.5 | ordine | SÌ | intero | Ordine di visualizzazione consigliato per i gruppi di pagamento. |
4.6 | iconUrl | NO | stringa{1,100} | Indirizzo dal quale è possibile scaricare il logo del gruppo di pagamento. |
5 | serviceID | SÌ | stringa{1,10} | Identificatore del servizio del partner; derivato dalla richiesta del metodo. |
6 | messaggioID | SÌ | stringa{32} | Identificatore del messaggio derivato dalla richiesta del metodo. |
7 | gatewayList | NO | lettera | Elenco contenente ulteriori canali di pagamento (vuoto se non sono configurati canali di pagamento). |
7.1 | gatewayID | SÌ | intero{1,5} | Identificatore del Canale di pagamento con cui il Cliente può regolare il pagamento. |
7.2 | nome | SÌ | stringa{1,200} | Il nome del canale di pagamento che può essere visualizzato nell'elenco delle banche disponibili. |
7.3 | gruppoTipo | NO | stringa{1,30} | Tipo, utilizzato per raggruppare i canali di pagamento nel loro elenco. Il parametro prende i valori dal nodo gatewayGruppi . |
7.4 | NomeBanca | NO | stringa{1,32} | Nome della banca. |
7.5 | iconUrl | NO | stringa{1,100} | Indirizzo dal quale è possibile scaricare il logo del Canale di pagamento. |
7.6 | Stato | SÌ | stringa{1,64} | Informazioni sullo stato di disponibilità dei canali. Accetta valori: - OK - canale disponibile - TEMPORARY_DISABLED - canale temporaneamente non disponibile (ad es. per lavori bancari) - DISABLED - canale non disponibile (servizio sospeso per un periodo prolungato) |
7.7 | statoData | NO | stringa{1,19} | Ultimo aggiornamento dello stato del Canale di pagamento; valore di esempio: 2023-08-28 00:00:01. (ora CET) |
7.8 | breveDescrizione | NO | stringa{1,200} | Campo opzionale contenente una breve descrizione del canale di pagamento. Può essere visualizzato quando viene selezionato. |
7.9 | descrizione | NO | stringa{1,1000} | Campo opzionale che descrive dettagliatamente il canale di pagamento (può essere con tag HTML). |
7.10 | descrizioneUrl | NO | stringa{1,200} | Campo opzionale contenente un link a una pagina esterna che illustra il canale di pagamento. |
7.11 | disponibilePer | SÌ | stringa{2,10} | Il valore di questo campo indica a quale cliente è destinato il canale di pagamento:B2C - metodo di pagamento per le persone fisiche B2B - metodo di pagamento per le aziende ENTRAMBI - metodo di pagamento per tutti i clienti.In base a questo parametro, si deve decidere se presentare al cliente un canale di pagamento. |
7.12 | parametri richiesti | NO | elenco | Un elenco di parametri richiesti quando si seleziona un metodo di pagamento. Ad esempio, l'inizio di una transazione per un metodo di pagamento del gruppo B2B deve includere il parametro Nip . I parametri richiesti sono descritti nella sezione: Avvio di una transazione con parametri aggiuntivi.Attualmente, tali parametri possono essere: Nip e Nome del titolare del conto . |
7.13 | mcc | NO | oggetto | Codice categoria commerciante. Nodo opzionale, configurabile in aggiunta. In casi particolari, per siti contenenti prodotti di diverse categorie, possiamo restituire un elenco di codici MCC consentiti e vietati, in modo che il commerciante possa decidere se il metodo di pagamento può essere presentato o meno. |
7.13.1 | consentito | NO | lettera | Elenco dei codici MCC consentiti. |
7.13.2 | non ammesso | NO | lettera | Elenco dei codici MCC vietati. |
7.14 | inBalanceAllowed | NO | booleano | Informazioni sulla possibilità di utilizzare il canale (dopo accordi commerciali) per i saldi prepagati (inizio della transazione con il parametro TransactionSettlementMode=NONE). |
7.15 | minValidityTime | NO | intero | Tempo minimo di validità della transazione in minuti. Compare per i canali che richiedono più tempo del solito per stabilire lo stato del pagamento. |
7.16 | ordine | SÌ | intero | Ordine di visualizzazione consigliato per il metodo di pagamento. |
7.17 | valute | SÌ | elenco | Un elenco contenente le valute disponibili per il canale di pagamento, con i limiti degli importi. |
7.17.1 | valuta | SÌ | stringa{3} | La valuta che può essere pagata da questo canale. Se per un canale di pagamento sono disponibili più valute, l'elenco conterrà più di una voce. Sono accettati solo i valori: PLN, EUR, GBP e USD. Per il conteggio dei valori di Hash, vengono presi i valori dei seguenti nodi valute. |
7.17.2 | importo minimo | NO | importo | L'importo minimo di una transazione che può essere pagato attraverso questo canale. Come separatore decimale si usa un punto fermo - '. Formato: 0,00; lunghezza massima: 14 cifre prima del punto e 2 dopo il punto. Il campo è presente solo per alcuni canali, il valore è espresso nella valuta del campo. valuta. Per il conteggio dei valori di Hash, vengono presi i valori dei seguenti nodi valute. |
7.17.3 | Importo massimo | NO | importo | L'importo massimo di una transazione che può essere pagato attraverso questo canale. Un punto è usato come separatore decimale - ".". Formato: 0,00; lunghezza massima: 14 cifre prima del punto e 2 dopo il punto. Il campo è presente solo per alcuni canali, il valore è espresso nella valuta del campo. valuta. Per il conteggio dei valori di Hash, vengono presi i valori dei seguenti nodi valute. |
7.18 | titolo del pulsante | SÌ | stringa | Messaggio suggerito che dovrebbe essere presente sul pulsante "paga" dopo aver selezionato un canale di pagamento. |
Esempio di risposta
{
"result": "OK",
"errorStatus": null,
"description": null,
"gatewayGroups": [
{
"type": "PBL",
"title": "Przelew internetowy",
"shortDescription": "Wybierz bank, z którego chcesz zlecić płatność",
"description": null,
"order": 1,
"iconUrl": null
},
{
"type": "FR",
"title": "Dane do przelewu",
"shortDescription": "Zleć przelew wykorzystując podane dane",
"description": null,
"order": 2,
"iconUrl": null
},
{
"type": "BNPL",
"title": "Kup teraz, zapłać później",
"shortDescription": "Kup teraz, zapłać później",
"description": null,
"order": 3,
"iconUrl": null
}
],
"serviceID": "10000",
"messageID": "2ca19ceb5258ce0aa3bc815e80240000",
"gatewayList": [
{
"gatewayID": 106,
"name": "Płatność testowa PBL",
"groupType": "PBL",
"bankName": "NONE",
"iconURL": "https://testimages.autopay.eu/pomoc/grafika/106.gif",
"state": "OK",
"stateDate": "2023-10-03 14:35:01",
"description": "Płatność testowa",
"shortDescription": null,
"descriptionUrl": null,
"availableFor": "BOTH",
"requiredParams": ["Nip"],
"mcc": {
"allowed": [1234, 9876],
"disallowed": [1111]
},
"inBalanceAllowed": true,
"minValidityTime": null,
"order": 1,
"currencies": [
{
"currency": "PLN",
"minAmount": 0.01,
"maxAmount": 5000.00
}
],
"buttonTitle": "Płacę"
},
{
"gatewayID": 9,
"name": "Przelew z innego banku",
"groupType": "FR",
"bankName": "BANK TEST",
"iconURL": "https://testimages.autopay.eu/pomoc/grafika/9.gif",
"state": "OK",
"stateDate": "2023-10-03 14:35:02",
"description": "<b>Szybki przelew</b>",
"shortDescription": "Szybki przelew",
"descriptionUrl": null,
"availableFor": "BOTH",
"requiredParams": [],
"mcc": null,
"inBalanceAllowed": true,
"minValidityTime": null,
"order": 2,
"currencies": [
{
"currency": "PLN"
}
],
"buttonTitle": "Wygeneruj dane do przelewu"
},
{
"id": 701,
"name": "Zapłać później z Payka",
"groupType": "BNPL",
"bankName": "NONE",
"iconUrl": "https://testimages.autopay.eu/pomoc/grafika/701.png",
"state": "OK",
"stateDate": "2023-10-03 14:37:10",
"description": "<div class=\"payway_desc\"><h1>Dane dotyczące kosztu</h1><p>Zapłać później - jednorazowo do 45 dni (...). Szczegóły oferty na: <a href="?r="https://payka.pl\" target=\"_blank\">Payka.pl</a></p></div>",
"shortDescription": "Zapłać później - jednorazowo do 45 dni lub w kilku równych ratach",
"descriptionUrl": null,
"availableFor": "B2C",
"requiredParams": [],
"mcc": null,
"inBalanceAllowed": false,
"minValidityTime": 60,
"order": 3,
"currencies": [
{
"currency": "PLN",
"minAmount": 49.99,
"maxAmount": 7000.00
}
],
"buttonTitle": "Płacę"
}
]
}
NOTE: Il risultato dell'interrogazione del metodo deve essere salvato e aggiornato ogni minuto per verificare la disponibilità del canale.
Descrizione di un'integrazione che consente l'utilizzo di una lista di pagamento incorporata in un servizio (o in un'applicazione mobile), senza fasi di transizione. In alcuni casi, invece di una fase di transizione, il comportamento standard del sistema prevede il blocco dell'inizio della transazione.
I contenuti formali pertinenti (ossia le clausole informative e, se del caso, i termini e le condizioni) devono essere visualizzati già al momento della selezione del metodo di pagamento e la conferma della loro visualizzazione e, se del caso, accettazione (sotto forma di identificatori) deve essere trasmessa al sistema di pagamento online.
Il sistema consente di interrogare a distanza l'elenco corrente degli obblighi e dei relativi contenuti formali. A questo scopo, il metodo dati legali (https://{host_gates}/legalData) con i corrispondenti parametri (in formato JSON).
CONSIGLIO: Tutti i parametri sono trasmessi utilizzando la tecnologia REST. Il protocollo è sensibile alle maiuscole e minuscole sia nei nomi che nei valori dei parametri. I valori dei parametri trasmessi devono essere codificati in UTF-8.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | intero | ID servizio partner. |
2 | MessaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio con una lunghezza di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID). Il valore del campo deve essere unico per il Servizio partner. |
3 | GatewayID | SÌ | intero{1,5} | Identificativo del Canale di pagamento attraverso il quale il Cliente intende regolare il pagamento. |
4 | Lingua | SÌ | stringa{2} | La lingua in cui viene presentato il contenuto del Sito web. Valori accettabili PL, EN, DE, CS, ES, FR, IT, SK, RO, HU, UK. L'uso di valori diversi da PL deve essere confermato durante l'integrazione e dipende dalla scelta effettiva (da parte del cliente) della lingua nel Servizio. |
n.d. | Hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
Esempio di messaggio
{
"ServiceID": 102422,
"MessageID": "11111111111111111111111111111111",
"GatewayID": 1500,
"Language": "PL",
"Hash":"61789013d932e2bc728d6206f7e9222b93e3176f7f07f6aa8cce1ccd65afaf0d"
}
In risposta alla richiesta, viene restituito un elenco (nella stessa sessione HTTP),
contenente ulteriori contenuti formali sotto forma di: ID, tipo e formulazione del contenuto
, la sua posizione nel Servizio, l'indirizzo alle regole e altre
informazioni aggiuntive.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | risultato | SÌ | stringa{1,5} | Stato della risposta. Valori accettabili: - OK - ERRORE |
2 | erroreStato | SÌ | stringa{1,100} | Stato di errore, da compilare in caso di errore. Altrimenti null. |
3 | descrizione | SÌ | stringa{1.500} | Descrizione dell'errore, da compilare in caso di errore. Altrimenti null. |
4 | serviceID | SÌ | stringa{1,10} | Identificatore del servizio del partner; derivato dalla richiesta del metodo. |
5 | messaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID). Derivato dalla richiesta del metodo. |
6 | gatewayID | SÌ | intero{1,5} | Identificatore del Canale di pagamento con cui il Cliente può regolare il pagamento. |
7 | lingua | SÌ | stringa{2} | La lingua in cui il Sistema restituisce i contenuti (clausole e regolamenti). |
8 | modello di servizio | SÌ | stringa{1,20} | Un campo per indicare il modello in cui funziona il servizio, per eventuali indicazioni future basate su questi valori (attualmente con i valori: MERCHANT, PAYER). A questo punto dovrebbe essere ignorato. |
n.d. | elenco dei regolamenti | SÌ | lettera | Un elenco contenente i contenuti formali disponibili per il canale di pagamento. |
9 | regolamentoID | SÌ | intero{1,10} | Identificatore formale del contenuto, che (se accettato dal cliente) deve essere passato nel parametro di inizio DefaultRegulationAcceptanceID, o RecurringAcceptanceID (rispettivamente per il tipo DEFAULT i RICORRENTE). Il metodo di accettazione è determinato dai campi showCheckbox i isCheckboxRequired. NOTE: Questo valore può ripetersi per le chiamate con diverse GatewayIDpoiché i regolamenti sono attribuiti a un gruppo di canali di pagamento piuttosto che a singoli canali. |
10 | tipo | SÌ | stringa{1,64} | Tipo di obbligo formale. Valori previsti: - DEFAULT - clausole e termini e condizioni di pagamento nel modello di servizio fornito da AP al cliente - RICORRENTE - e i termini e le condizioni del pagamento automatico. Valore disponibile solo se è configurato un servizio di pagamento automatico. - PSD2 - clausola dedicata ai canali di tipo PSD2 (valore non utilizzato al momento) - RODO - clausola informativa sul trattamento dei dati personali - PRIVACY - clausola informativa sulla privacy |
11 | url | NO | stringa{1.500} | Indirizzo del file dei termini e delle condizioni (da incorporare nel Servizio stesso). Per impostazione predefinita, se si tratta di un obbligo formale, dovrebbe far parte di una delle sue clausole, cioè il campo etichetta d'ingresso. CONSIGLIO: Appare quando c'è un documento associato al consenso. |
n.d. | elenco etichette | SÌ | lettera | Un elenco contenente le clausole disponibili per un determinato obbligo formale. L'obbligo può richiedere la visualizzazione di uno o più contenuti. |
12 | etichettaID | SÌ | intero{1,10} | Identificatore di clausola, trasmesso a scopo diagnostico (può essere ignorato dal Partner). |
13 | etichetta d'ingresso | SÌ | stringa{1.500} | Il contenuto della clausola da visualizzare sul Servizio in combinazione con la relativa regolamentoID. In alcuni casi, può includere un link ai regolamenti. |
14 | posizionamento | NO | stringa{1,64} | Informazioni che suggeriscono dove collocare le clausole. Valori attuali: - TOP_OF_PAGE - nella parte superiore del sito (ad es. vicino al logo/banner superiore) - NEAR_PAYWALL - intorno all'elenco dei canali di pagamento (direttamente sopra, sotto o accanto) - ABOVE_BUTTON - sopra il pulsante "Avvia il pagamento". - BOTTOM_OF_PAGE - in fondo alla pagina (di solito si riferisce a clausole di RODO, di informazione sulla PRIVACY) |
15 | showCheckbox | SÌ | booleano | Informazioni sull'opportunità di visualizzare una clausola accanto a una casella di controllo per l'accettazione da parte dell'utente. |
16 | casella di controlloRichiesta | SÌ | booleano | Informazioni sul fatto che la casella di controllo visualizzata deve essere selezionata dall'utente per procedere al pagamento. NOTE: Se il valore è true, il pulsante "Avvia pagamento" deve essere bloccato finché la casella di controllo non è selezionata. |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio partner. |
Esempio di risposta
{
"serviceID": "102422",
"messageID": "11111111111111111111111111111111",
"gatewayID": "1500",
"language": "PL",
"serviceModel": "PAYER",
"regulationList": [
{
"regulationID": 6288,
"type": "RECURRING",
"url": "https://host/path?params",
"labelList": [
{
"labelID": 1,
"inputLabel": "<ul><li>\r\nZapoznałem się i akceptuję <a id=\"regulations_pdf\" target=\"_blank\" href=https://{host_bramki}/path?params>Regulamin świadczenia usług płatniczych</a> oraz <a class=\"privacy-policy\" href=\"https://{host_bramki}/polityka-prywatnosci.pdf\" target=\"_blank\">Politykę prywatności</a></li><li>\r\nChcę aby usługa została zrealizowana niezwłocznie, a w przypadku odstąpienia od umowy, wiem, że nie otrzymam zwrotu poniesionych kosztów za usługi zrealizowane na moje żądanie do chwili odstąpienia od umowy\r\n</li></ul>",
"placement": "ABOVE_BUTTON",
"showCheckbox": true,
"checkboxRequired": true
}
]
},
{
"regulationID": 1,
"type": "PRIVACY",
"labelList": [
{
"labelID": 1,
"inputLabel": "Autopay korzysta z plików cookie. Pozostając na tej stronie, wyrażasz zgodę na korzystanie z plików cookie zgodnie z <a class=\"privacy-policy\" href="?r="https://{host_bramki}/polityka-prywatnosci.pdf\" target=\"_blank\">Polityką prywatności Autopay S.A. </a> Możesz samodzielnie zarządzać cookies zmieniając odpowiednio ustawienia swojej przeglądarki lub oprogramowania urządzenia."
"placement": "BOTTOM_OF_PAGE",
"showCheckbox": false,
"checkboxRequired": false
}
]
}
],
"hash": "61789013d932e2bc728d6206f7e9222b93e3176f7f07f6aa8cce1ccd65afaf0d",
"result": "OK",
"errorStatus": null,
"description": null
}
Poiché i requisiti formali per il contenuto delle clausole, la loro disposizione e il metodo di accettazione dipendono dal canale di pagamento utilizzato, questo metodo deve essere richiamato ogni volta che viene selezionato (da qui l'obbligatorietà del parametro dell'elemento GatewayID).
Il contenuto e il comportamento pertinenti dovrebbero essere adattati dinamicamente alle risposte del sistema (ad esempio, dovrebbe apparire una casella di controllo obbligatoria con una clausola informativa e un link ai termini e alle condizioni). Naturalmente, per rendere l'applicazione veloce, è gradito l'uso di una cache per ricordare le risposte delle chiamate recenti (ad esempio per 1 minuto).
Il consenso visualizzato (ed eventualmente approvato) al momento del passaggio al pagamento deve essere confermato nel Sistema inserendo nel messaggio di inizio il parametro start del suo identificativo (e quindi il corrispondente valore del parametro regolamentoID).
A seconda del valore del campo tipo regolamenti:
- per la clausola visualizzato/accettato di tipo=DEFAULT:
a. al parametro DefaultRegulationAcceptanceID dovrebbe andare il suo valore
regolamentoID;b. al parametro Stato di accettazione della regolamentazione predefinita dovrebbe andare valore ACCETTATO e
c. al parametro Tempo di accettazione del regolamento predefinito deve premere il valore corrispondente al momento dell'accettazione del consenso spuntando la casella e cliccando sul pulsante "Avvia pagamento".
- per la clausola visualizzato/accettato di tipo=RECURRING:
a. al parametro RecurringAcceptanceID dovrebbe raggiungere il suo valore regolamentoID;
b. al parametro Stato di accettazione ricorrente dovrebbe raggiungere il valore di ACCETTATO e
c. al parametro Tempo di accettazione ricorrente deve premere il valore corrispondente al momento dell'accettazione del consenso spuntando la casella di controllo e cliccando sul pulsante "Inizia il pagamento".
NOTE: Campi (ad es. serviceModel, url, labelID) e i valori dei campi (ad es.
PSD2, RODO, PRIVACY) metodi dati legali non sono necessari per la gestione di
, ma occorre prevedere che si verifichino nella risposta di
a una richiesta.
Per tutti i servizi, è possibile interrogare il saldo corrente. Per questo, il metodo deve essere chiamato. balanceGet https://{host_gates}/webapi/balanceGet con i relativi parametri. Tutti i parametri vengono passati tramite il metodo POST (Content-Type: application/x-www-form-urlencoded). Il protocollo è sensibile alle maiuscole sia nei nomi dei parametri che nei valori. I valori dei parametri passati devono essere codificati in UTF-8.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | stringa{1,10} | ID servizio partner. |
1 | Punto di equilibrioID | SÌ | stringa{1,10} | Identificatore del punto di insediamento. NOTE: Richiesto uno dei campi ID servizio o Punto di equilibrioID. Se si specificano entrambi, l'elaborazione della richiesta viene interrotta e viene visualizzato un errore http. |
2 | MessaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio con una lunghezza di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID). Il valore del campo deve essere unico per il Servizio partner. |
3 | ID plenipotenziario | NO | stringa{8,8} | ID proxy. Se presente, la chiave condivisa del proxy viene utilizzata per calcolare l'Hash, anziché la chiave primaria del servizio/punto di fatturazione. Questo influisce anche sull'Hash in risposta a questo messaggio. IMPORTANTE! L'utilizzo di questo campo richiede accordi commerciali speciali. |
n.d. | Hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Viene utilizzata una chiave condivisa assegnata all'identificatore di configurazione utilizzato (Servizio o Punto di regolamento). Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
In risposta alla richiesta, viene restituito un testo in formato XML (nella stessa sessione HTTP), contenente una conferma dell'operazione per o una descrizione dell'errore.
Struttura di conferma (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<balanceGet>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<balance>Balance</balance>
<currency>Currency</currency>
<hash>Hash</hash>
</balanceGet>
o
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<balanceGet>
<balancePointID>BalancePointID</balancePointID>
<messageID>MessageID</messageID>
<balance>Balance</balance>
<currency>Currency</currency>
<hash>Hash</hash>
</balanceGet>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceID | SÌ | stringa{1,10} | Identificatore di servizio del partner. Derivato da una richiesta di metodo. |
1 | balancePointID | SÌ | stringa{1,10} | Identificatore del punto di regolamento. Derivato da una richiesta di metodo. NOTE: Verrà restituito uno dei campi ID servizio o Punto di equilibrioID. |
2 | messaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID). Derivato dalla richiesta del metodo. |
3 | equilibrio | SÌ | importo | Valore del saldo; un punto è usato come separatore decimale - '.' Formato: 0,00. |
4 | valuta | SÌ | stringa{1,3} | Valuta di equilibrio. Sono accettati solo i valori: PLN, EUR, GBP e USD. |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Viene utilizzata una chiave condivisa assegnata all'identificatore di configurazione utilizzato (Servizio o Punto di regolamento). Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio partner. |
Per i servizi che hanno un saldo nel Sistema, è possibile eseguire operazioni di accredito del saldo su futuri rimborsi. A tal fine, è necessario eseguire un avvio di transazione con il parametro Modalità di transazione o valori NESSUNO e Importo indicando l'importo della ricarica.
L'uso di Pre-transazioni consentirà la semplice consegna della transazione conclusa al pagatore (ad esempio, fornendo l'indirizzo dell'ufficio contabile del partner in CustomerEmail).
NOTE: Il servizio deve essere concordato con il custode aziendale. Nel modello Marketplace, sarà inoltre necessario costruire un paniere di prodotti indicando quale BalancePointID deve essere alimentato.
Per i servizi che hanno un saldo nel Sistema, è possibile eseguire operazioni di
prelievo di tutto o parte del saldo sul conto definito per i
regolamenti. A tal fine è necessario richiamare il metodo saldoPagamento
(https://{host_gates}/settlementapi/balancePayoff) con i corrispondenti parametri
.
Tutti i parametri vengono passati tramite il metodo POST (Content-Type: application/x-www-form-urlencoded). Il protocollo è sensibile alle maiuscole e minuscole sia nei nomi dei parametri che nei valori. I valori dei parametri passati dovrebbero essere codificati in UTF-8.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
NOTE: Richiesto uno dei campi ID servizio o Punto di equilibrioID.
Se si specificano entrambi, l'elaborazione della richiesta viene interrotta e viene visualizzato un errore http.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | stringa{1,10} | ID servizio partner. |
1 | Punto di equilibrioID | SÌ | stringa{1,10} | Identificatore del punto di insediamento. |
2 | MessaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio con una lunghezza di 32 caratteri alfanumerici dell'alfabeto latino (ad esempio basato sull'UID); il valore del campo deve essere unico e indicare uno specifico ordine di pagamento nel Servizio del Partner. La verifica dell'univocità da parte del Sistema consente di ripetere il MessageID in caso di problemi di comunicazione (la ripetizione di questo valore comporta la conferma dell'ordine, senza una nuova esecuzione nel Sistema). |
3 | Importo | NO | importo | Importo del prelievo dal saldo (non può essere superiore al saldo attuale del servizio); la mancata indicazione di questo parametro comporta il prelievo del totale dei fondi accumulati sul saldo; un punto - '.' viene utilizzato come separatore decimale. Formato: 0,00. |
4 | Valuta | NO | stringa{1,3} | Valuta di pagamento. La valuta predefinita è il PLN (l'uso di un'altra valuta deve essere concordato durante l'integrazione). All'interno di ServiceID è supportata una sola valuta. Sono accettati solo i valori: PLN, EUR, GBP e USD. |
5 | ClienteNRB | NO | stringa{26} | Il numero di conto su cui deve essere effettuato il prelievo del saldo. Per impostazione predefinita, la configurazione dell'erogazione non consente di definire questo valore nella richiesta del metodo. saldoPagamento. Tale richiesta deve essere fatta durante l'integrazione. NOTE: In alcuni modelli, l'uso di questo campo può avvenire solo per le richieste provenienti da un elenco di IP affidabili e l'uso di uno dei 3 elementi aggiuntivi: - proteggere la comunicazione con un certificato client o - proteggere la comunicazione con un tunnel IPSec o - utilizzo del valore del parametro ClienteNRB dall'elenco degli account affidabili L'inosservanza di tali norme comporta un errore CUSTOMER_NRB_NOT_AUTHORIZED. Gli amministratori del pannello di sistema (https://portal.autopay.eu/admin) possono aggiornare autonomamente gli elenchi di IP e NRB attendibili nel file Controllo degli accessi configurazione del servizio. Sono ammesse solo le cifre. Se durante l'integrazione è stato stabilito l'utilizzo di conti al di fuori della Polonia, il campo trasferisce l'IBAN e l'intervallo di dati previsto per il campo cambia in: caratteri latini alfanumerici (min. 15, max. 32 caratteri). |
6 | Codice Swift | NO | stringa{8,11} | Il codice swift corrispondente al numero di conto indicato. Sono ammesse solo cifre. Parametro da fornire se durante l'integrazione è stato stabilito l'uso di account non polacchi. |
7 | Modalità di trasferimento estero | NO | stringa{4,5} | Il sistema con cui deve essere effettuato il trasferimento del regolamento estero: - SEPA (Single Euro Payments Area) - è possibile effettuare un bonifico in valuta euro all'interno degli Stati membri dell'Unione Europea, così come in altri Paesi del Vecchio Continente, ad esempio Islanda, Liechtenstein, Norvegia, Svizzera, Monaco o Andorra, - SWIFT - trasferimenti all'estero non possibili con la SEPA (ad esempio, valuta diversa dall'euro). Questa opzione è associata a costi di trasferimento più elevati rispetto alla SEPA. Valori accettabili: SEPA i SWIFT. Parametro da fornire se durante l'integrazione è stato stabilito l'uso di conti al di fuori della Polonia. |
8 | NomeRicevitore | NO | stringa{35} | Il nome del beneficiario del prelievo del saldo. Per impostazione predefinita, la configurazione dell'erogazione non consente di definire questo valore nella richiesta del metodo. saldoPagamento. Tale richiesta deve essere fatta durante l'integrazione. Caratteri alfanumerici latini e caratteri dell'intervallo accettabili: êÓÓ󱳿¼ññæñ.-/,!()=[]{};:? |
9 | Titolo | NO | stringa{32} | Titolo dell'erogazione del saldo. Per impostazione predefinita, la configurazione dell'erogazione non consente di definire questo valore nella richiesta del metodo. saldoPagamento. Tale richiesta deve essere fatta durante l'integrazione. In alcuni casi, al di fuori del controllo dell'AP, questo titolo può essere modificato autonomamente dalla Banca. Caratteri alfanumerici latini e caratteri dell'intervallo accettabili: dove il segno "/" sarà sostituito da un "-" per le transazioni in uscita. |
10 | ID remoto | NO | stringa{1,20} | L'identificativo alfanumerico della transazione in entrata assegnato dal Sistema e trasmesso al Partner nel messaggio ITN della transazione in entrata. Il valore di questo messaggio è utilizzato per indicare lo strumento di pagamento (carta, conto, ecc.) da utilizzare per il prelievo. |
11 | Numero di fattura | NO | stringa{1,100} | Il numero del documento finanziario nel Servizio. In questo messaggio, il valore viene utilizzato per indicare la fattura di rettifica associata al pagamento. |
12 | ID plenipotenziario | NO | stringa{8,8} | ID proxy. Se presente, la chiave condivisa del proxy viene utilizzata per calcolare l'Hash, anziché la chiave primaria del servizio/punto di fatturazione. Questo influisce anche sull'Hash in risposta a questo messaggio. IMPORTANTE! L'utilizzo di questo campo richiede accordi commerciali speciali. |
n.d. | Hash | SÌ | stringa{1,128} | Viene utilizzata la chiave condivisa assegnata all'identificatore di configurazione utilizzato (Servizio o Punto di regolamento). Il valore della funzione di hash per il messaggio, calcolato come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
Alla ricezione di una richiesta di prelievo di saldo, il Sistema esegue una verifica iniziale rispetto ai campi e ai loro valori inviati nel messaggio e salva l'ordine per l'esecuzione. In risposta alla richiesta, viene restituito un testo in formato XML (nella stessa sessione HTTP), contenente la conferma che l'ordine è stato salvato nella coda per l'esecuzione o la descrizione dell'errore (la struttura del messaggio di errore è descritta nella sezione Messaggi di errore.
NOTE: La conferma di ricezione di un ordine non equivale alla sua effettiva esecuzione. Un prelievo dal saldo può essere elaborato fino a 30 minuti dopo l'invio della richiesta di prelievo e non sempre va a buon fine. In caso di problemi riscontrati durante l'elaborazione di un prelievo dal saldo (ad esempio, fondi insufficienti nel saldo), il giorno lavorativo successivo viene inviato un rapporto contenente informazioni sui prelievi dal saldo che non sono andati a buon fine.
Struttura di conferma (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<balancePayoff>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<hash>Hash</hash>
</balancePayoff>
o
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<balancePayoff>
<balancePointID>BalancePointID</balancePointID>
<messageID>MessageID</messageID>
<hash>Hash</hash>
</balancePayoff>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceID | SÌ | stringa{1,10} | Identificatore di servizio del partner. Derivato da una richiesta di metodo. |
1 | balancePointID | SÌ | stringa{1,10} | Identificatore del punto di regolamento. Derivato da una richiesta di metodo. NOTE: Verrà restituito uno dei campi ID servizio o Punto di equilibrioID. |
2 | messaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID). Derivato dalla richiesta del metodo. |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio partner. |
NOTE: Tutte le risposte diverse da quella ipotizzata (cioè con campi non corretti, in particolare campi vuoti o non corretti) sono state inserite in un file di testo. hash). Nel caso in cui il sistema autorizzi il mittente del messaggio di ritorno ma l'operazione fallisca, la risposta seguirà lo schema descritto nella sezione Messaggi di errore. In caso di errore di comunicazione o di saldo insufficiente (ad esempio ON_DEMAND_ERROR), l'ordine può essere rinnovato. Se il saldo è bloccato (BALANCE_DISABLED) o la configurazione non è attiva (PARTNER_DISABLED), l'ordine non deve essere rinnovato.
IMPORTANTE! In caso di errore in risposta a una richiesta di prelievo del saldo, la richiesta può essere ripetuta, ma si noti che qualsiasi richiesta di prelievo che non si concluda con un errore può essere eseguita. In caso di problemi di connessione, che superino il tempo massimo di risposta, la richiesta può essere ripetuta con lo stesso MessageID senza timore di duplicare l'ordine.
In caso di saldo bloccato (BALANCE_DISABLED) o di configurazione inattiva (PARTNER_DISABLED), la richiesta non deve essere rinnovata. 3 errori consecutivi (indipendentemente dalla causa) bloccheranno il servizio di erogazione su richiesta per l'IP mittente del messaggio specificato per 10 minuti - le chiamate durante questo periodo per questo IP termineranno con un errore TEMPORARY_DISABLED.
Per i servizi che presentano un saldo nel Sistema, è possibile effettuare operazioni di restituzione al Cliente di tutto o parte dell'importo pagato per la transazione indicata. Il rimborso dell'intera transazione può essere effettuato una sola volta (in caso di tentativo ripetuto di ordinare il rimborso della stessa transazione, il Sistema restituisce un errore opportunamente descritto). Le restituzioni di parte dell'importo di una transazione possono essere effettuate più volte, purché il loro totale non superi l'importo del deposito.
Per eseguire la restituzione di una transazione, richiamare il metodo transazioneRimborso (https://{host_gates}/settlementapi/transactionRefund) con i parametri corrispondenti. Tutti i parametri vengono passati tramite il metodo POST (Content-Type: application/x-www-form-urlencoded). Il protocollo è sensibile alle maiuscole e minuscole sia nei nomi dei parametri che nei valori. I valori dei parametri passati devono essere codificati in UTF-8.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | stringa{1,10} | ID servizio partner. |
2 | MessaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio con una lunghezza di 32 caratteri alfanumerici dell'alfabeto latino (ad esempio basato sull'UID); il valore del campo deve essere univoco e indicare uno specifico ordine di pagamento nel Servizio Partner. La verifica dell'univocità da parte del Sistema consente di ripetere quanto segue MessaggioID in caso di problemi di comunicazione (la reiterazione di questo valore comporterà la conferma dell'ordine, senza una nuova esecuzione nel Sistema). |
3 | ID remoto | SÌ | stringa{1,20} | L'identificativo alfanumerico della transazione di input restituita assegnato dal Sistema e passato al Partner nel messaggio ITN della transazione di input. |
4 | Importo | NO | importo | Importo del prelievo dal saldo (non può essere superiore al saldo attuale del servizio); la mancata indicazione di questo parametro comporta il prelievo del totale dei fondi accumulati sul saldo; un punto - '.' viene utilizzato come separatore decimale. Formato: 0,00. Nel modello Marketplace, il campo deve essere vuoto (ritorno totale). In caso contrario, non sarebbe possibile indicare il/i punto/i di fatturazione a cui addebitare tale operazione. In caso di restituzione totale, il saldo viene detratto in base alla somma degli importi dei prodotti del rispettivo punto di compensazione. |
5 | Valuta | NO | stringa{1,3} | Valuta di pagamento. La valuta predefinita è il PLN (l'uso di un'altra valuta deve essere concordato durante l'integrazione). All'interno di ServiceID è supportata una sola valuta. Sono accettati solo i valori: PLN, EUR, GBP e USD. |
n.d. | Hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio partner. |
In risposta alla richiesta, viene restituito un testo in formato XML (nella stessa sessione HTTP), che conferma l'operazione o descrive l'errore (descritto di seguito).
Struttura di conferma (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<transactionRefund>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<hash>Hash</hash>
</transactionRefund>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceID | SÌ | stringa{1,10} | Identificatore di servizio del partner. Derivato da una richiesta di metodo. |
2 | messaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID). Derivato dalla richiesta del metodo. |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio partner. |
L'opzione di effettuare rimborsi per le transazioni pagate è possibile fino a 12 mesi indietro, contando dalla data in cui la transazione è stata avviata. Fanno eccezione i pagamenti BLIK che, a causa di vincoli temporali da parte del fornitore del canale di pagamento, possono essere rimborsati fino a 6 mesi prima.
Queste scadenze si applicano all'elaborazione dei resi tramite il pannello di amministrazione
e il pannello di amministrazione
. transazioneRimborsoad esempio tramite gli strumenti amministrativi di
. Quando questi valori vengono superati, viene restituito un errore
(TRANSAZIONE_TROPPO_VECCHIA_PER_RIMBORSARE).
Lo schema di funzionamento è analogo a quello dei prelievi da saldo. In altre parole, il Sistema accetta l'ordine e lo elabora in modo asincrono entro un massimo di 30 minuti; in caso di fallimento, l'informazione sull'operazione conclusasi con un errore viene inviata in un report il giorno lavorativo successivo.
In caso di problemi di connessione, che superino il tempo massimo di risposta, la richiesta può essere ripetuta con lo stesso MessageID senza temere una richiesta duplicata.
Tutte le risposte diverse da quella ipotizzata (ovvero con campi
non validi, in particolare vuoti o non validi
hash). Se il sistema autorizza il mittente del messaggio di ritorno
, ma l'operazione non riesce, viene restituito un messaggio di errore
.
Per i siti con un saldo nel Sistema e che specificano dei prodotti nel carrello, il parametro ID prodottoè possibile eseguire l'operazione di restituzione al Cliente dell'intero o di parte dell'importo pagato per il prodotto indicato. La restituzione dell'intero importo del prodotto può essere effettuata una sola volta (in caso di ripetuti tentativi di ordinare la restituzione dello stesso prodotto, il Sistema restituisce un errore opportunamente descritto). La restituzione di parte dell'importo del prodotto può essere effettuata su esso più volte, purché la loro somma non superi l'importo pagato al prodotto.
Per eseguire una restituzione di prodotto, richiamare il metodo prodottoRimborso
(https://{host_gates}/settlementapi/productRefund) con i corrispondenti parametri
. Tutti i parametri sono passati tramite il metodo POST
(Content-Type: application/x-www-form-urlencoded). Il protocollo è
sensibile alle maiuscole e minuscole sia nei nomi dei parametri che nei valori. I valori di
parametri passati devono essere codificati in UTF-8.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | stringa{1,10} | ID servizio partner. |
2 | MessaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio con una lunghezza di 32 caratteri alfanumerici dell'alfabeto latino (ad esempio basato sull'UID); il valore del campo deve essere univoco e indicare uno specifico ordine di pagamento nel Servizio Partner. La verifica dell'univocità da parte del Sistema consente di ripetere quanto segue MessaggioID in caso di problemi di comunicazione (la reiterazione di questo valore comporterà la conferma dell'ordine, senza una nuova esecuzione nel Sistema). |
3 | ID remoto | SÌ | stringa{1,20} | L'identificativo alfanumerico della transazione di input restituita assegnato dal Sistema e passato al Partner nel messaggio ITN della transazione di input. |
4 | ID prodotto | SÌ | stringa{1,36} | Identificatore del prodotto restituito. |
5 | Importo | NO | importo | Importo del rimborso (non può essere maggiore dell'importo del prodotto e del saldo attuale del servizio + l'importo della commissione di rimborso, se presente). La mancata indicazione di questo parametro comporterà la restituzione al cliente dell'intero importo pagato per il prodotto restituito; un punto - '.' - viene utilizzato come separatore decimale. Formato: 0,00. |
6 | Valuta | NO | stringa{1,3} | Valuta di pagamento. La valuta predefinita è il PLN (l'uso di un'altra valuta deve essere concordato durante l'integrazione). All'interno di ServiceID è supportata una sola valuta. Sono accettati solo i valori: PLN, EUR, GBP e USD. |
n.d. | Hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio partner. |
In risposta alla richiesta, viene restituito (nella stessa sessione HTTP) un testo in formato XML, contenente una conferma dell'operazione o una descrizione dell'errore (descritto di seguito).
Struttura di conferma (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<productRefund>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<hash>Hash</hash>
</productRefund>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceID | SÌ | stringa{1,10} | Identificatore di servizio del partner. Derivato da una richiesta di metodo. |
2 | messaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID). Derivato dalla richiesta del metodo. |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio partner. |
L'opzione di effettuare rimborsi per le transazioni pagate è possibile fino a 12 mesi indietro, contando dalla data in cui la transazione è stata avviata. Fanno eccezione i pagamenti BLIK che, a causa di vincoli temporali da parte del fornitore del canale di pagamento, possono essere rimborsati fino a 6 mesi prima.
Queste scadenze si applicano all'elaborazione dei resi tramite il pannello di amministrazione
e il pannello di amministrazione
. prodottoRimborsoad esempio tramite i propri strumenti di amministrazione
. Quando questi valori vengono superati, viene restituito un errore
(TRANSAZIONE_TROPPO_VECCHIA_PER_RIMBORSARE).
Lo schema di funzionamento è analogo a quello dei prelievi da saldo. In altre parole, il Sistema accetta l'ordine e lo elabora in modo asincrono entro un massimo di 30 minuti; in caso di fallimento, l'informazione sull'operazione conclusasi con un errore viene inviata in un report il giorno lavorativo successivo.
In caso di problemi di connessione, che superino il tempo massimo di risposta, la richiesta può essere ripetuta con lo stesso MessageID senza temere una richiesta duplicata.
Tutte le risposte diverse da quella ipotizzata (ovvero con campi
non validi, in particolare vuoti o non validi
hash). Se il sistema autorizza il mittente del messaggio di ritorno
, ma l'operazione non riesce, viene restituito in risposta un messaggio di errore
(vedere. Messaggi di errore).
Una volta effettuato il rimborso o il prelievo del saldo, abbiamo la possibilità di verificare in quale stato si trova la transazione di regolamento e
quale identificativo le è stato assegnato dal Sistema di pagamento online. A tal fine, richiamare il metodo dettagli
(https://{host_gates}/settlementapi/outDetails) con i corrispondenti parametri
.
Tutti i parametri vengono passati tramite il metodo POST (Content-Type: application/x-www-form-urlencoded). Il protocollo è sensibile alle maiuscole e minuscole sia nei nomi dei parametri che nei valori. I valori dei parametri passati dovrebbero essere codificati in UTF-8.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
NOTE: Richiesto uno dei campi ID servizio o Punto di equilibrioID.
Se si specificano entrambi, l'elaborazione della richiesta viene interrotta e viene visualizzato un errore http.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | stringa{1,10} | ID servizio partner. |
1 | Punto di equilibrioID | SÌ | stringa{1,10} | Identificatore del punto di insediamento. |
2 | MessaggioID | SÌ | stringa{32} | Inserire lo stesso identificativo del messaggio inviato in precedenza quando si ordina un rimborso o un prelievo di saldo. |
3 | Metodo | SÌ | enum | L'operazione per la quale è stata creata la transazione di regolamento: SALDO_PAGAMENTO - prelievo dal bilancio RIMBORSO_TRANSAZIONE - restituzione delle transazioni PRODOTTO_RIMBORSO - restituzione del prodotto |
n.d. | Hash | SÌ | stringa{1,128} | Viene utilizzata la chiave condivisa assegnata all'identificatore di configurazione utilizzato (Servizio o Punto di regolamento). Il valore della funzione di hash per il messaggio, calcolato come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
Struttura di conferma (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<outDetails>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<Status>Status</status>
<remoteOutID>RemoteOutId</remoteOutId>
<hash>Hash</hash>
</outDetails>
o
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<outDetails>
<balancePointID>BalancePointID</balancePointID>
<messageID>MessageID</messageID>
<Status>Status</status>
<remoteOutID>RemoteOutId</remoteOutId>
<hash>Hash</hash>
</outDetails>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceID | SÌ | stringa{1,10} | Identificatore di servizio del partner. Derivato da una richiesta di metodo. |
1 | balancePointID | SÌ | stringa{1,10} | Identificatore del punto di regolamento. Derivato da una richiesta di metodo. NOTE: Verrà restituito uno dei campi ID servizio o Punto di equilibrioID. |
2 | messaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID). Derivato dalla richiesta del metodo. |
3 | Stato | SÌ | enum | Stato di elaborazione: NUOVO - In attesa di essere rielaborato. ELABORAZIONE - Durante il processo ERRORE - Elaborazione non riuscita, ad es. mancanza di fondi nel saldo FATTO - L'elaborazione è andata a buon fine. |
4 | remoteOutID | NO | stringa{1,20} | L'identificativo alfanumerico dell'operazione di regolamento assegnato dal Sistema di pagamento online. Integrato solo per lo status FATTO |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio partner. |
Il sistema consente di visualizzare un riepilogo della transazione al cliente. A tale scopo, il Partner può creare collegamenti di attivazione con i parametri pertinenti del metodo
. conferma (https://{host_gates}/web/conferma/pagamento).
Tutti i parametri vengono passati con il metodo GET. Il protocollo è
sensibile alle maiuscole e alle minuscole sia nei nomi che nei valori dei parametri. I
valori dei parametri passati devono essere codificati in UTF-8.
Il reindirizzamento di un Cliente con parametri corretti comporterà la visualizzazione di un riepilogo della transazione (con contenuti che dipendono dal suo stato) o l'informazione della sua assenza (se il Sistema non la trova).
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | stringa{1,10} | ID servizio partner. |
2 | ID ordine | SÌ | stringa{32} | L'identificativo della transazione assegnato nel Servizio partner e comunicato all'inizio della transazione. |
n.d. | Hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
NOTE: Il servizio deve essere attivato previo accordo con il mentore aziendale. È possibile modificare il contenuto dei messaggi o adattarne il layout (questi sono soggetti a un accordo in forma operativa durante l'integrazione).
Per tutti i servizi, è possibile interrogare lo stato della transazione. Per questo, il metodo dovrebbe essere chiamato Stato della transazione (https://{host_gateway}/webapi/transactionStatus) con i relativi parametri.
Tutti i parametri vengono passati tramite il metodo POST (Content-Type: application/x-www-form-urlencoded). Il protocollo è sensibile alle maiuscole e minuscole sia nei nomi dei parametri che nei valori. I valori dei parametri passati dovrebbero essere codificati in UTF-8.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | stringa{1,10} | ID servizio partner. |
2 | ID ordine | SÌ | stringa{32} | L'identificativo della transazione assegnato nel Servizio partner e comunicato all'inizio della transazione. |
n.d. | Hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio partner. |
Per una corretta interrogazione, insieme ai parametri passati deve essere inviata un'intestazione HTTP definita
con un contenuto appropriato. L'intestazione
allegata deve essere denominata 'BmHeader' e avere il seguente valore
'pay-bm', nella sua interezza, dovrebbe essere la seguente
BmHeader: pay-bm'.. In caso di messaggio valido, viene restituito un testo
in formato XML (nella stessa sessione HTTP), contenente tutte le
transazioni con l'OrderID indicato e le relative informazioni di base.
CONSIGLIO: Tale situazione può verificarsi, ad esempio, quando il Cliente cambia il Canale di pagamento, richiama lo stesso avvio di transazione dalla cronologia del browser, ecc. Il sistema consente di bloccare tali casi, ma l'opzione è sconsigliata (non sarebbe possibile pagare la transazione abbandonata).
IMPORTANTE! Se l'interrogazione riguarda un ID ordine presente in più di 50 transazioni di un determinato servizio, viene restituita una risposta (XML) con il codice di errore 403 di
.
Struttura di risposta quando viene raggiunto il limite di transazioni con lo stesso orderId:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<transaction>
<reason>LIMIT_REQUESTED_TRANSACTIONS_WITH_THE_SAME_ORDER_ID_AND_SERVICE_ID_EXCEEDED</reason>
<description>Transaction limit 50 with the same order id {{ORDER_ID}} and service id {{SERVICE_ID}} exceeded. Requested count {{TRANSACTION_AMOUNT}}
</description>
</transaction>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceID | SÌ | stringa{1,10} | L'ID del servizio partner, assegnato durante la registrazione del servizio, identifica in modo univoco il servizio partner nel sistema di pagamento online. |
2 | ID ordine | SÌ | stringa{1,32} | L'identificativo della transazione assegnato nel Servizio partner e comunicato all'inizio della transazione. |
3 | ID remoto | SÌ | stringa{1,20} | Un identificativo alfanumerico della transazione assegnato dal Sistema di pagamento online. |
5 | importo | SÌ | importo | L'importo della transazione utilizza un punto fermo come separatore decimale - ".". Formato: 0,00; lunghezza massima: 14 cifre prima del punto e 2 dopo il punto. |
6 | valuta | SÌ | stringa{1,3} | Valuta della transazione. |
7 | gatewayID | NO | stringa{1,5} | Identificatore del Canale di pagamento attraverso il quale il Cliente ha regolato il pagamento. |
8 | data di pagamento | SÌ | stringa{14} | L'ora in cui la transazione è stata autorizzata, trasmessa nel formato YYYMMDDhhmmss. (ora CET) |
9 | Stato del pagamento | SÌ | enum | Stato dell'autorizzazione alla transazione, assume valori (descrizione dei cambiamenti di stato più avanti): IN ATTESA - transazione avviata. SUCCESSO - corretta autorizzazione della transazione, il Servizio partner riceverà i fondi per la transazione - i beni/servizi possono essere emessi. FALLIMENTO - la transazione non è stata completata correttamente. |
10 | pagamentoStatoDettagli | NO | stringa{64} | Stato dettagliato della transazione, valore che può essere ignorato dal Servizio partner. CONSIGLIO: Descrizione dettagliata in parte Stati dettagliati delle transazioni. |
n.d. | hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
NOTE: Poiché il metodo può restituire più transazioni, le transazioni successive vengono scaricate nell'Hash (secondo l'ordine di occorrenza delle transazioni nella risposta). All'interno di una determinata transazione, si applica l'ordine secondo il numero accanto al campo (escluso il parametro ServiceID, livello superiore).
Esempio di funzione hash stringa
Hash = funkcja(<serviceID> + „|” +
<orderID1> + „|” + <remoteID1> + „|” + <amount1> + „|” + <currency1> + „|” + <gatewayID1> + „|” + <paymentDate1> + „|” + <paymentStatus1> + „|” + <paymentStatusDetails1> + „|” +
<orderID2> + „|” + <remoteID2> + „|” + <amount2> + „|” + <currency2> + „|” + <gatewayID2> + „|” + <paymentDate2> + „|” + <paymentStatus2> + „|” + <paymentStatusDetails2> + …
Le condizioni | Importanza di | Messaggio proposto al cliente |
---|---|---|
Esattamente una transazione con stato di pagamento=SUCCESSO | Transazione pagata correttamente. | Il sistema ha registrato correttamente il pagamento. |
Più di una transazione con stato di pagamento=SUCCESSO | Transazioni multiple a pagamento. | Il sistema ha registrato più di un pagamento. |
C'è un RemoteID con paymentstatus=PENDING e non c'è nessuno con paymentstatus=SUCCESS | La transazione è in attesa di pagamento. | Il sistema è in attesa di pagamento. |
Esiste almeno una transazione ma non c'è uno stato diverso da paymentstatus=FAILURE | Transazione annullata. | Il sistema ha registrato un annullamento di pagamento o una mancata autorizzazione di pagamento. |
Nessuna transazione o altro errore | Mancata ricerca di un accordo. | La transazione non è stata trovata. |
Per tutti i servizi, è possibile annullare una transazione avviata ma
non pagata chiamando il metodo transazioneAnnulla
(https://{host_gateway}/webapi/transactionCancel) con i corrispondenti parametri
. Tutti i parametri sono passati tramite il metodo POST
(Content-Type: application/x-www-form-urlencoded).
Il protocollo è sensibile alle maiuscole sia nei nomi che nei valori dei parametri
. I valori dei parametri passati devono essere codificati in UTF-8.
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | ID servizio | SÌ | stringa{1,10} | ID servizio partner. |
2 | MessaggioID | SÌ | stringa{32} | Identificatore pseudocasuale del messaggio con una lunghezza di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID). Il valore del campo deve essere unico per il Servizio partner. |
3 | ID remoto | NO | stringa{1,20} | Un identificativo alfanumerico della transazione assegnato dal Sistema e trasmesso al Partner nel messaggio ITN della transazione in entrata. La sua indicazione comporterà l'annullamento di una sola transazione della tipologia indicata. ID remotose il pagamento è in sospeso (stato IN ATTESA). |
4 | ID ordine | NO | stringa{32} | L'identificativo della transazione assegnato nel Servizio partner e comunicato all'inizio della transazione. L'ID della transazione comunicato all'inizio della transazione. ID remoto) annullerà tutte le transazioni in sospeso (stato IN ATTESA) dell'indicato ID ordine (e ID servizio). NOTE: Richiesto uno dei campi ID ordine o ID remoto. Se si specificano entrambi, l'elaborazione della richiesta viene interrotta e viene generato un errore http. |
n.d. | Hash | SÌ | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. |
Per una corretta interrogazione, insieme ai parametri passati deve essere inviata un'intestazione HTTP definita
con un contenuto appropriato. L'intestazione
allegata deve essere denominata 'BmHeader' e avere il seguente valore
'pay-bm'. Nella sua interezza, dovrebbe presentarsi come segue:
'BmHeader: pay-bm'
Nel caso di un messaggio valido, viene restituito (nella stessa sessione HTTP) un testo in formato XML, contenente la conferma che l'operazione è stata eseguita o una descrizione dell'errore.
Struttura di conferma (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transaction>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<confirmation>ConfStatus</confirmation>
<reason>Reason</reason>
<hash>Hash</hash>
</transaction>
IMPORTANTE! L'ordine degli attributi per l'enumerazione Hash deve seguire la loro numerazione
.
Ordine di hash | nome | richiesto | tipo | descrizione |
---|---|---|---|---|
1 | serviceID | NO | stringa{1,32} | Identificatore di servizio del partner. Derivato da una richiesta di metodo. Richiesto per la conferma=CONFIRMED |
2 | messaggioID | NO | stringa{1,20} | Identificatore pseudocasuale del messaggio di 32 caratteri alfanumerici latini (ad esempio, basato sull'UID). Derivato dalla richiesta del metodo. Richiesto per la conferma=CONFIRMED |
3 | conferma | SÌ | stringa{1,100} | Stato di conferma dell'ordine. Può assumere due valori: - CONFERMATO - l'operazione è riuscita - NOTCONFIRMED - operazione fallita |
4 | motivo | NO | stringa{1,1000} | Spiegazione dei dettagli dell'elaborazione della richiesta. |
n.d. | hash | NO | stringa{1,128} | Valore della funzione message digest calcolata come descritto nella sezione Sicurezza delle transazioni. Verifica obbligatoria della conformità dell'abbreviazione calcolata da parte del servizio. Richiesto per la conferma=CONFIRMED |
Se il messaggio è sintatticamente corretto, il sistema restituirà una delle coppie che descrivono il risultato dell'elaborazione. Oltre alla sua interpretazione, è consigliato per controllare lo stato della transazione (metodo Stato della transazione).
Si noti che una volta che almeno una transazione è stata annullata con successo, non è possibile avviarne una nuova o continuare una transazione precedentemente avviata con la stessa ID ordine.
conferma | motivo | dettagli |
---|---|---|
CONFERMATO | ANNULLATO_PIENAMENTE | Per l'OrderID indicato: tutte le transazioni di deposito in sospeso sono state annullate. Per il RemoteID indicato: la transazione è stata annullata. |
CONFERMATO | ANNULLATO_PARZIALMENTE | Per l'OrderID indicato: almeno una transazione è stata annullata, ma ci sono transazioni che non potevano essere annullate (ad esempio, erano già state pagate). Per il RemoteID indicato: tale risposta non si verifica. |
NON CONFERMATO | STATO_DI_PAGAMENTO_ERRATO | È stata trovata almeno una transazione indicata, ma non è stato possibile annullarne nessuna (ad esempio, non c'era nessuna transazione in sospeso). |
NON CONFERMATO | TRANSAZIONE_NON_TROVATA | La transazione indicata non è stata trovata. |
NON CONFERMATO | ALTRO_ERRORE | Si è verificato un altro errore durante l'elaborazione della richiesta. |
Tutti i messaggi di errore saranno restituiti come documento XML, contenente il codice dell'errore, il suo nome e una descrizione. A causa dell'elevata variabilità dei possibili errori, non viene mantenuta una documentazione completa degli errori.
CONSIGLIO: Campo descrizione, descrive accuratamente ciascuno degli errori (campi codice di stato i nome possono essere ignorati).
Esempio di errore (XML)
<?xml version="1.0" encoding="UTF-8"?>
<error>
<statusCode>55</statusCode>
<name>BALANCE_ERROR</name>
<description>Wrong services balance! Should be 100 but is 40</description>
</error>
Questa sezione presenta modelli, scenari di eventi e il flusso di informazioni
.
Di seguito sono riportati i diagrammi di sequenza per i due modelli di integrazione.
Il modello più semplice, in cui la scelta dei canali di pagamento avviene sulle pagine Autopay (paywall).
È caratterizzata dalla presentazione dei canali di pagamento da parte dell'esercente. A tal fine, è necessario ottenere dal servizio
un elenco di canali con relative descrizioni. elenco gateway/v3
e ottenere un elenco delle norme procedurali necessarie per ogni canale di pagamento (/dati legali
).
Il resto del processo è lo stesso del modello Paywall.
La struttura del partner consiste in almeno 1 servizio (identificato da un identificatore ID servizio) e un numero qualsiasi di punti insediamenti (identificati da un identificatore idPunto di equilibrio).
I servizi sono solitamente le fonti dei link di pagamento (sito web, app mobile, email, ecc.). I servizi distribuiscono anche il traffico relativo a diversi settori (pagamenti di fatture, acquisti di e-Commerce ecc.) Poiché la transazione è identificata da una coppia di ID ordine i ID serviziosi può dire che "il servizio corrisponde al livello di transazione".
I punti di regolamento sono definiti se è necessario distinguere in qualche modo i pagamenti componenti (ad esempio, indicandoli nelle relazioni o nei regolamenti indipendenti). Poiché il prodotto della transazione è identificato dal punto di regolamento associato (idPunto di equilibrio), si può dire che "il punto di insediamento corrisponde al livello del prodotto".
Il paniere di prodotti (e quindi anche i punti di fatturazione) può non essere presente nella struttura che descrive il Partner. Il motivo dell'aggiunta di punti di fatturazione alla struttura influenza la decisione sul modello di fatturazione:
la necessità di distinguere le componenti costitutive di un deposito nell'elenco delle transazioni (nelle segnalazioni) non comporta necessariamente un regolamento separato di ciascun prodotto o punto di regolamento; in questa situazione, di solito, sono sufficienti modelli di regolamento a livello di servizio di (batch o dopo ogni deposito).
la necessità di separare i regolamenti componenti di un deposito, comporta l'utilizzo di un modello di regolamento a livello di punto di regolamento (lotto o dopo ogni deposito).
Di seguito viene illustrata una struttura esemplificativa (senza indicare uno specifico modello di regolamento
)
Modelli di transazione e di regolamento
Il regolamento sintetico avviene il giorno lavorativo successivo (D+1).
Il regolamento dopo ogni pagamento può essere eseguito immediatamente dopo il ricevimento del pagamento da parte del Cliente ai dati della transazione indicati nei parametri del Collegamento di pagamento (opzioni: Conto del destinatario, Titolo del bonifico, Nome del destinatario del bonifico).
Il regolamento sintetico avviene il giorno lavorativo successivo (D+1).
Il regolamento dopo ogni pagamento può essere eseguito immediatamente dopo
la ricezione del pagamento da parte del Cliente ai dati del prodotto indicati nei parametri del Link di pagamento
(opzioni: Conto destinatario, Titolo del bonifico,
Nome del destinatario del bonifico).
Le liquidazioni possono essere ordinate dal socio chiamando il metodo: transazioneSettlement.