ASP.NET
PHP
JAVA

Integrazione

Il capitolo descrive tecnicamente come integrare nel webstore un modulo HTML per richiamare la pagina BuyNow di AXEPTA. Gli esercenti che utilizzano questa tecnologia, interagiscono in gran parte con l'HTML della pagina web. Quando un utente clicca su un pulsante di pagamento, il modulo HTML, invia le variabili e i relativi valori al gateway e-commerce. Puoi impostare le variabili per produrre i risultati desiderati, come:
  • Autorizzazione (AUTH) - Autorizzazione di una transazione con impegno dell'importo senza movimentazione contabile.
  • Movimentazione (PURCHASE) - Autorizzazione con movimentazione contabile
  • Conferma (CONFIRM) - Movimentazione di una transazione precedentemente autorizzata
  • Credito (CREDIT) - Storno di una transazione movimentata
  • Storno (VOID) - Storno di una transazione autorizzata

Sicurezza e integrità dei dati

dati scambiati con la pagina BuyNow sono protetti da un certificato SSL/TLS a 256 bit, installato sul server per garantire l'autenticità del dominio, nascondendo il significato delle informazioni per tutelarsi dalle intercettazioni non autorizzate(sniffing). La presenza di un certificato SSL è testimoniata, dalla visualizzazione, nella barra di indirizzo, dalla dicitura HTTPS e dalla validità del certificato emesso da una CA attendibile. L'integrità dei valori trasmessi in entrambe le direzioni, dal server dell'esercente verso e-POSitivity sono garantite tramite una verifica con hashSHA1 da generare lato server e non sulla pagina client.

ASP.NET

Riportiamo di seguito una pagina.aspx che consente l’inserimento dell’importo da addebitare tramite una casella di testo chiedendo conferma prima di procedere. Anche in questo modulo di esempio, è necessario gestire la creazione dell’hash lato server. Per motivi di sicurezza vi consigliamo di non inserire il vostro codice SharedSecret direttamente nel codice sorgente, ma di recuperarlo ad esempio da un database. In entrambi gli esempi illustrati l’indirizzo POST URL specificato è valido esclusivamente per inviare transazioni all’ambiente di test. Al termine dei test, vi forniremo l’indirizzo e i dati definitivi per inviare le transazioni in produzione.
<%@ PageLanguage="VBScript"ValidateRequest="False" %>
<scriptrunat="server">
PrivateSubPage_Load()
    conferma_importo.Visible=
    False send.Visible=False
End Sub

PrivateSubInvia(senderAs Object,eAsEventArgs)
    DimadessoAsDateTime=DateTime.Now
    Dimadesso_stringa AsString
    
    Dimstore_id AsString
    Dimimporto_hashAsString
    Dimshared_secret AsString
    Dimhash_hex AsString
    Dimhash_sha1AsString
    
    adesso_stringa=adesso.ToString("yyyy:MM:dd-HH:mm:ss")
    
    adesso_stringa=adesso_stringa.replace(".",":")
    txndatetime.Value=adesso_stringa
    
    chargetotal.value=importo.Text
    store_id="08000001_S"
    shared_secret="ksig"
    importo_hash=importo.Text
    hash_hex=strToHex(String.Concat(store_id,adesso_stringa,importo_hash, "EUR",shared_secret))
    hash_sha1=FormsAuthentication.HashPasswordForStoringInConfigFile(hash_hex, "sha1").toLower()
    hash.Value= hash_sha1
    importo.visible= False
    conferma_importo.Text=conferma_importo.text&importo.text& ".<br><br>Vuoiproseguire?"
    conferma_importo.Visible= True
    check.Visible=False
    send.Visible=True
End Sub

Private FunctionstrToHex(myStrAs String)As String
    DimhexStrAs String
    DimhexTmpAs String
    Dimi%
    Fori=1To Len(myStr)
    hexTmp=Hex(Asc(Mid(myStr,i, 1)))
    hexStr=hexStr&hexTmp
    Next
    strToHex=hexStr.ToLower()
End Function
</script>
<html>
    <head><title>BNLe-POSitivity</title></head>
    <body>
        <form id="positivity"runat="server">
            <p><b>Transazionesu BNL e-POSitivity</b></p>
            <p>
                Inserire l'importoe premere'Acquista';confermare premendosu 'Continua'.
            </p>
            <asp:HiddenField id="txntype" Value="tipotransazione, vediparagrafo5.A"runat="server"/>
            <asp:HiddenField id="timezone" Value="CET"runat="server"/>
            <asp:HiddenField id="txndatetime"Value=""runat="server"/>
            <asp:HiddenField id="hash"Value=""runat="server"/>
            <asp:HiddenField id="storename"Value="08000001_S"runat="server"/>
            <asp:HiddenField id="mode"Value="payonly"runat="server"/>
            <asp:HiddenField id="currency" Value="EUR"runat="server"/>
            <asp:HiddenField id="language" Value="IT"runat="server"/>
            <asp:HiddenField id="chargetotal"Value=""runat="server"/>
            <asp:HiddenField id="responseSuccessURL" Value="http://.../esitoOK.asp"runat="server"/>
            <asp:HiddenField id="responseFailURL"Value="http://.../esitoKO.asp"runat="server"/>
            <asp:Textboxid="importo"Text="10.00"runat="server"/>
            <asp:Label id="conferma_importo"Text="Procedi conil pagamentodi EUR"runat="server"/>
            <asp:Button id="check"runat="server"Text="Acquista"OnClick="Invia"/>
            <asp:Button id="send"runat="server" Text="Continua"PostBackUrl="
            https://pftest.bnlpositivity.it/service/"/>
        </form>
    </body>
</html>

Pagina di esempio in PHP

Riportiamo di seguito una pagina PHP con le stesse caratteristiche della pagina ASP.NET illustrata sopra.
<html>
    <head><title>Pagina di esempiodie–POSitivity</head> 
    <body>
        <p><h2>Prima transazione con e–POSitivity</h2></p> 
        <form method="post"  action="https://pftest.bnlpositivity.it/service/">
            <input type="hidden" name="txntype" value="tipotransazione, vediparagrafo5.A">
            <input type="hidden" name="timezone" value="CET">
            <input type="hidden" name="txndatetime" value="<?php echo getDateTime() ?>">
            <input type="hidden" name="hash" value="<?php echo createHash("10.00","EUR",inserirevaloreassegnatotxndatetime)?>">
            <input type="hidden" name="storename"value="08000001_S">
            <input type="hidden" name="mode" value="payonly">
            <input type="hidden" name="currency" value="EUR">
            <input type="hidden" name="language" value="IT">
            <input type="hidden" name="responseSuccessURL" value="http://.../esitoOK.php">
            <input type="hidden" name="responseFailURL" value="http://.../esitoKO.php">
            <input type="text"   name="chargetotal" value="10.00">
            <inputtype="submit"  value="Acquista">
        </form>
    </body>
 </html>
 
 <?php 
$dateTime = date("Y:m:d-H:i:s");
function getDateTime(){ 
    global $dateTime;
    return $dateTime;
}

function createHash($chargetotal,$currency,$dataInseritaNelFieldtxndatetime){
    $storeId = "08000001_S";
    $ksig = "ksig";
    $stringToHash = $storeId.$dataInseritaNelFieldtxndatetime.$chargetotal.$currency.$ksig; 
    $ascii = bin2hex($stringToHash);
    returnsha1($ascii);
} 
?>

Calcolo Hash in Java

import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.Date;

public finalclassIPGIntegrationUtil{
    
    private staticSimpleDateFormatdateFormat= newSimpleDateFormat("yyyy:MM:dd-HH:mm:ss");
    private StringfmtDate=dateFormat.format(newDate(System.currentTimeMillis()));
    private StringstoreId;
    private Stringksig;
    private String charge;
    private String currency;
    
    publicIPGIntegrationUtil(StringstoreId,Stringksig, String charge, Stringcurrency){
        super();
        this.storeId=storeId;
        this.ksig=ksig;
        this.charge=charge;
        this.currency= currency;
    }
    
    public StringcreateHash(){
        StringstringToHash=storeId+fmtDate+ charge+currency+ksig;
        returncalculateHashFromHex( newStringBuffer(stringToHash) );
    }
    
    private StringcalculateHashFromHex(StringBuffer buffer){
        Stringalgorithm="SHA1";
        MessageDigestmessageDigest= null;
        
        try{
            messageDigest=MessageDigest.getInstance(algorithm);
        }catch(Exceptione){
            thrownewIllegalArgumentException("Algorithm '"+ algorithm+ "'not supported");
        }
        
        StringBufferresult= newStringBuffer();
        StringBuffersb=newStringBuffer();
        byte[]bytes=buffer.toString().getBytes();
        intbyteLen=bytes.length;
        
        for (inti=0;i<byteLen;i++){
            byteb= bytes[i];
            sb.append(Character.forDigit((b& 240)>>4, 16));
            sb.append(Character.forDigit((b& 15), 16));
        }
    
        buffer=newStringBuffer(sb.toString());
        messageDigest.update(buffer.toString().getBytes())
        ; byte[]message=messageDigest.digest();
        intmessageLen=message.length;
        
        for(intj=0;j<messageLen;j++){
            byteb= message[j];
            Stringapps=Integer.toHexString(b&0xff);
            if(apps.length()==1){
                apps= "0"+apps;
            }
            result.append(apps);
        }
        returnresult.toString();
    }
    
    public StringgetCharge(){
        returncharge;
    }
    
    public Stringgetksig(){
        returnksig;
    }
    
    public StringgetStoreId(){
        returnstoreId;
    }
    
    public StringgetFormattedSysDate(){
        returnfmtDate;
    }
}

Alias

L' Alias ha lo scopo di sostituire lo strumento di pagamento, quale la carta di credito, con una stringa di massima lunghezza 32 caratteri, ad esso associata. Infatti, l’esercente non può, per regolamento PCI, salvare nei propri sistemi e database dati sensibili del titolare di carta, quali il numero e la scadenza della carta di pagamento. Questa opzione permette all’esercente di ricevere pagamenti impostando l’Alias che identifica uno specifico strumento di pagamento, senza la necessità di richiedere all’utente gli estremi dello stesso. Questo facilita il processo di pagamento ai clienti che acquistano spesso dal vostro negozio. L' archiviazione dell'Alias è preceduta da una verifica della carta di credito effettuando un’autorizzazione (AUTH) o movimentazione contabile (PURCHASE). In fase di chiamata i parametri da impostare sono:
  • hosteddataid: stringa di massimo 32 caratteri
  • txntype:AUTH o PURCHASE
  • hosteddataidtype: tipo di associazione;
    • "A".
Per effettuare transazioni ricorrenti con gli Alias archiviati, leggere i manuali tecnici di integrazione con API e web services.

Autorizzazione (AUTH)

Le autorizzazioni non hanno le movimentazioni contabili, quindi per procedere con l'accredito dell'importo e l'addebito del titolare di carta di credito bisogna movimentare l'autorizzazione con la funzione "CONFIRM".
Campo Descrizione Valori MAX Lenght Obbligatorio
txntype Tipo transazione AUTH • PURCHASE • CONFIRM • CREDIT • VOID SI
timezone Fuso orario della transazione; quello italiano è CET • CET • GMT • EET SI
txndatetime Data e ora della transazione. AAAA:MM:GG- hh:mm:ss SI
hash ValorehashSHA1calcolato sulla base dei seguenti campi:   storename+txndatetime + chargetotal +currency + ksig     È importante che l’hash sia generato passando alla funzione i campi in questo esatto ordine SI
storename Id del terminale fornito dal Servizio Esercenti. 16 SI
mode Tipologia di pagamento.   Parametro fisso a payonly payonly SI
chargetotal Importo della transazione; Utilizzare sempre il punto come separatore decimale ,ad esempio12.34perunimportodi12 Euroe34centesimi. 11.00corrispondea11 euro e 00centesimi, importi senza il punto verranno scartati. I separatori delle migliaia (1,000.01o1.000,01) non sono consentiti.   Anche il calcolo dell’hash in fase di richiesta e risposta deve essere calcolato con importi con punto così come scambiati con il server. x.xx· xxxx.xx 12 SI
currency Valuta della transazione EUR SI
oid Identificativo dell'ordine lato esercente.   Se non viene valorizzato, il sistema e- Positivity calcola un valore random.   Per i caratteri accettati riferirsi al par 7.F 256 NO
responseSuccessURL url di indirizzamento in caso di transazione andata a buon fine 512 SI
responseFailURL url di indirizzamento in caso di transazione negata 512 SI
transactionNotificationURL url di una pagina esposta dall' esercente dove resta in attesa di notifica di pagamento da parte del sistema "e-Positivity" 512 NO
invoicenumber Può contenere qualsiasi valore, ad esempio il numero fattura 256 NO
language Linguaggio della pagina di pagamento. Di default è IT • IT • EN • DE NO
addInfo3 Campo descrittivo libero 256 NO
addInfo4 Campo descrittivo libero 256 NO
email E-mail del titolare di carta, dove verrà inviatala conferma del pagamento 256 NO
timeout Tempo massimo di inizializzazione Della transazione espresso in ms NO
hosteddataid Alias da memorizzare 32 NO
hosteddataidtype Tipo di associazione alias. (Per generazione automatica dell'alias). Per associazioni dell' esercente valore fisso A • A NO
freeText Utilizzato per la funzionalità di “insegna dinamica” descritta nel paragrafo N 256 NO

Autorizzazione con contabilizzazione (PURCHASE)

Viene fatta l'autorizzazione con relativa contabilizzazione, quindi l'esercente verrà accreditato e il titolare di carta addebitato.
CAMPO DESCRIZIONE VALORI MAX LENGHT OBBLIGATORIO
txntype Tipo transazione
  • AUTH
  • PURCHASE
  • CONFIRM
  • CREDIT
  • VOID
SI
timezone Fuso orario della transazione; quello italiano è CET
  • CET
  • GMT
  • EET
SI
txndatetime Data e ora della transazione. AAAA:MM:GG- hh:mm:ss SI
hash Valore hashSHA1 calcolato Sulla base dei seguenti campi: storename+txndatetime + chargetotal+currency + ksig. È importante che l’hash sia generato passando alla funzione i campi in questo esatto ordine SI
storename Id del terminale fornito dal ServizioEsercenti. 16 SI
mode Tipologia di pagamento. Parametro fisso a payonly payonly SI
chargetotal Importo della transazione; utilizzare sempre il punto come separatore decimale, ad esempio 12.34 per un importo di 12 Euro e 34 centesimi. 11.00 corrisponde a 11 euro e 00 centesimi, importi senza il punto verranno scartati. I separatori delle migliaia (1,000.01 o 1.000,01) non sono consentiti. Anche il calcolo dell’hash in fase di richiesta e risposta deve essere calcolato con importi con punto così come scambiati con il server. x.xx· xxxx.xx 12 SI
currency Valuta della transazione EUR SI
oid Identificativo dell'ordine lato esercente. Se non viene valorizzato, il sistema e- Positivity calcola un valore random. Per i caratteri accettati riferirsi al par 7.F 256 SI
responseSuccessURL URL di indirizzamento in caso di Transazione andata a buon fine 512 SI
responseFailURL url di indirizzamento in caso di transazione negata 512 SI
transactionNotificationURL url di una pagina esposta dall' esercente dove resta in attesa di notifica di pagamento da parte del sistema e- Positivity. 512 NO
invoicenumber Può contenere qualsiasi valore, ad esempio il numero fattura 256 NO
language Linguaggio della pagina di pagamento. Di default è IT
  • IT
  • EN
  • DE
NO
addInfo3 Campo descrittivo libero 256 NO
addInfo4 Campo descrittivo libero 256 NO
email E-mail del titolare di carta, dove verrà inviata la conferma del pagamento 256 NO
timeout Tempo massimo di inizializzazione della transazione espresso in ms. NO
hosteddataid Alias da memorizzare 32 NO
hosteddataidtype Tipo di associazione alias. Per associazioni dell' esercente valore fisso A
  • A
NO
freeText Utilizzato per la funzionalità di “insegna dinamica” descritta nel paragrafo N 256 NO

Storno di una transazione non contabilizzata (VOID)

La funzione Void permette di stornare una transazione non contabilizzata, quindi eseguita con tipo operazione uguale ad "AUTH".
CAMPO DESCRIZIONE VALORI MAX LENGHT OBBLIGATORIO
RefTransactionId Transaction id della transazione da stornare 16 SI
txntype Tipo transazione • AUTH • PURCHASE • CONFIRM • CREDIT • VOID SI
timezone Fuso orario della transazione; quello italiano è CET • CET • GMT • EET SI
txndatetime Data e ora della transazione. AAAA:MM:GG- hh:mm:ss SI
hash ValorehashSHA1calcolato Sulla base dei seguenti campi:   storename+txndatetime + chargetotal +currency + ksig     È importante che l’hash sia generato passando alla funzione i campi in questo esatto ordine SI
storename Id del terminale restituito dal parametro di ritorno "terminal_id" dopo la richiesta di autorizzazione. 16 SI
mode Tipologia di pagamento.   Parametro fisso a payonly payonly SI
chargetotal Importo della transazione; utilizzare sempre il punto come separatore decimale, ad esempio12.34perunimporto di12Euroe34centesimi.   11.00corrispondea11euroe x.xx· xxxx.xx 12 SI
00centesimi, importi senza il punto verranno scartati. I separatori delle migliaia (1,000.01o1.000,01) non sono consentiti.   Anche il calcolo dell’hash in fase di richiesta e risposta deve essere calcolato con importi con punto così come scambiati con il server.
currency Valuta della transazione EUR SI
oid Identificativo dell'ordine lato esercente.   Se non viene valorizzato, il sistema e-Positivity calcola un valore random Per i caratteri accettati riferirsi al par 7.F 256 NO
responseSuccessURL url di indirizzamento in caso di transazione andata a buon fine 512 SI
responseFailURL url di indirizzamento in caso di transazione negata 512 SI
transactionNotificationUR L url di una pagina esposta dall' esercente dove resta in attesa d notifica di pagamento da parte del sistema e_Positivity "MODULO HTML " 512 NO
invoicenumber Può contenere qualsiasi valore, ad esempio il numero fattura 256 NO
language Linguaggio della pagina di pagamento. Di default è IT • IT • EN • DE NO
addInfo3 Campo descrittivo libero 256 NO
addInfo4 Campo descrittivo libero 256 NO
email E-mail del titolare di carta, dove verrà inviata la conferma del pagamento 256 NO
timeout Tempo massimo di esecuzione Della transazione espresso in ms NO

Credito di una transazione contabilizzata (CREDIT)

La funzione CREDIT permette di riaccreditare una transazione eseguita in precedenza, con PURCHASE o CONFIRM.
CAMPO DESCRIZIONE VALORI MAX LENGHT OBBLIGATORIO
SplitTran Indica se si vuole riaccreditare Solo una parte dell'importo in precedenza autorizzato • TRUE • FALSE SI
RefTransactionId Transaction id della transazione Da riaccreditare 16 SI
txntype Tipo transazione • AUTH • PURCHASE • CONFIRM • CREDIT • VOID SI
timezone Fuso orario della transazione; quello italiano è CET • CET • GMT • EET SI
txndatetime Data e ora della transazione. AAAA:MM:GG- hh:mm:ss SI
hash ValorehashSHA1calcolato Sulla base dei seguenti campi:   storename+txndatetime + chargetotal + currency + ksig.     È importante che l’hash sia generato passando alla funzione i campi in questo esatto ordine SI
storename Id del terminale restituito dal parametro di ritorno "terminal_id" dopo la richiesta di movimentazione. 16 SI
mode Tipologia di pagamento.   Parametro fisso a payonly payonly SI
chargetotal Importo della transazione; utilizzare sempre il punto come separatore decimale, ad esempio12.34perunimporto di12Euroe34centesimi.   11.00corrispondea11euroe 00centesimi, importi senza il punto verranno scartati. I separatori delle migliaia (1,000.01o1.000,01) non sono consentiti.   Anche il calcolo dell’hash in fase di richiesta e risposta deve essere calcolato con importi con punto così come scambiati con il server. x.xx· xxxx.xx 12 SI
currency Valuta della transazione EUR SI
oid Identificativo dell'ordine lato esercente.   Se non viene valorizzato, il sistema e-Positivity calcola un valore random Per i caratteri accettati riferirsi al par 7.F 256 NO
responseSuccessURL Url di indirizzamento in caso di Transazione andata a buon fine 512 SI
responseFailURL Url di indirizzamento in caso di Transazio nenegata 512 SI
transactionNotificationURL url di una pagina esposta dall' esercente dove resta in attesa di notifica di pagamento da parte 512 NO
invoicenumber Può contenere qualsiasi valore, ad esempio il numero fattura 256 NO
language Linguaggio della pagina di pagamento. Di default è IT • IT • EN • DE NO
addInfo3 Campo descrittivo libero 256 NO
addInfo4 Campo descrittivo libero 256 NO
email E-mail del titolare di carta, dove verrà inviata la conferma del pagamento 256 NO
timeout Tempo massimo di esecuzione della transazione espresso in ms NO

Conferma di una transazione non contabilizzata (CONFIRM)

La funzione CONFIRM permette di confermare una transazione non contabilizzata eseguita in precedenza con la funzione AUTH.
CAMPO DESCRIZIONE VALORI MAX LENGHT OBBLIGATORIO
SplitTran Indica se si vuole confermare Solo una parte dell'importo in precedenza autorizzato • TRUE • FALSE SI
RefTransactionId Transaction id della transazione Da confermare 16 SI
txntype Tipo transazione • AUTH • PURCHASE • CONFIRM • CREDIT • VOID SI
timezone Fuso orario della transazione; quello italiano è CET • CET • GMT • EET SI
txndatetime Data e ora della transazione. AAAA:MM:GG- hh:mm:ss SI
hash ValorehashSHA1calcolato Sulla base dei seguenti campi:   storename+txndatetime + chargetotal +currency + ksig. SI
È importante che l’hash sia generato passando alla funzione i campi in questo esatto ordine
storename Id de lterminale restituito dal parametro di ritorno; "terminal_id", dopo la richiesta di autorizzazione. 16 SI
mode Tipologia di pagamento. Parametro fisso a payonly payonly SI
chargetotal Importo della transazione; utilizzare sempre il punto come separatore decimale, ad esempio12.34perunimporto di12Euroe34centesimi.   11.00corrispondea11euroe 00centesimi, importi senza il punto verranno scartati. I separatori delle migliaia (1,000.01o1.000,01) non sono consentiti.   Anche il calcolo dell’hash in fase di richiesta e risposta deve essere calcolato con importi con punto così come scambiati con il server. x.xx· xxxx.xx 12 SI
currency Valuta della transazione EUR
oid Identificativo dell'ordine lato esercente.   Se non viene valorizzato, il sistema e-Positivity calcola un valore random Per i caratteri accettati riferirsi al par 7.F 256 NO
responseSuccessURL URL di indirizzamento in caso di Transazione andata a buon fine 512 SI
responseFailURL URL di indirizzamento in caso di Transazione negata 512 SI
transactionNotificationURL URL di una pagina esposta dall' esercente dove resta in attesa di notifica di pagamento da parte del "MODULO HTML " 512 NO
invoicenumber Può contenere qualsiasi valore, ad esempio il numero fattura 256 NO
language Linguaggio della pagina di pagamento. Di default è IT • IT • EN • DE NO
addInfo3 Campo descrittivo libero 256 NO
addInfo4 Campo descrittivo libero 256 NO
email E-mail del titolare di carta, dove verrà inviata la conferma del pagamento 256 NO
timeout Tempo massimo di esecuzione Della transazione espresso in ms NO

Campo oid – Caratteri accettati

All’interno del campo “oid” sono accettati esclusivamente i caratteri presentati nella seguente lista. Le transazioni presentate con caratteri non validi verranno scartate.

Integrazione con Findomestic

L'integrazione del circuito Findomestic prevede la valorizzazione dei parametri riportati nei paragrafi:
  • A Autorizzazione senza movimentazione contabile "Auth"
  • B Autorizzazione con movimentazione contabile "Purchase"
  • C Storno di una transazione autorizzata "Void"
  • D Credito di una transazione movimentata "Credit"
  • E movimentazione di una transazione autorizzata "Confirm"
Durante la richiesta di autorizzazione (A e B) il cliente verrà indirizzato sulla pagina di pagamento di Axepta. La pagina di Axepta consente al titolare di carta di credito Findomestic, di scegliere una promozione tra quelle proposte. L'immagine sotto riporta il layout della pagina. Il circuito Findomestic oltre al risultato della transazioni prevede eventuali spese aggiuntive, riportate nel campo "additional_fee" come scritto nel paragrafo I.

Integrazione con PayPal

Per indirizzare il cliente sulla pagina di PayPal, ad integrazione dei parametri della transazione, valorizzare i seguenti dettagli come riportato nella tabella.
CAMPO DESCRIZIONE VALORI MAX LENGHT OBBLIGATORIO
PayPalSender Valorizzare con il parametro "Y" • Y 1 NO (SI, se postate qualche campo dedicato a paypal riportato sotto)
PayPalProducts Numero di prodotti da Visualizzare sulla pagina di PayPal 100 NO(SI, se postate i prodotti da riportare sulla pagina d PayPal)
PayPalInvoiceNumber Numero fattura 32 NO
PayPalSenderPostalCode Codice postale del mittente 8 NO
PayPalSenderCountryCode Codice nazione del mittente nelformatoISO31222A3 3 NO
PayPalDestinationName Rif. spedizione 32 NO
PayPalDestinationStreet 100 NO
PayPalDestinationStreet2 100 NO
PayPalDestinationCity 40 NO
PayPalDestinationState 32 NO
PayPalDestinationPostalCo de 8 NO
PayPalDestinatioCountry Code 3 NO
PayPalBillingName Rif. fatturazione 32 NO
PayPalBillingstreet 100 NO
PayPalBillingstreet2 100 NO
PayPalBillingCity 40 NO
PayPalBillingState 32 NO
PayPalBillingPostalCode 8 NO
PayPalBillingCountryCode 3 NO
PayPalFreightAmount Importo totale senza spedizione; utilizzare sempre il punto come separatore decimale,adesempio12.34 per un importo di12Euroe34 centesimi.   11.00corrispondea11euroe 00centesimi, importi senza il punto verranno scartati. I separatori delle migliaia (1,000.01o1.000,01) non sono consentiti.   Anche il calcolo dell’hash in fase di richiesta e risposta deve essere calcolato con importi con punto così come scambiati con il server. 12 NO
PayPalTaxAmount Tasse; utilizzare sempre il Punto come separatore decimale, adesempio12.34 per un importo di12Euroe34 centesimi.   11.00corrispondea11euroe 00centesimi, importi senza il punto verranno scartati. 12 NO
I separatori delle migliaia (1,000.01o1.000,01) non sono consentiti.   Anche il calcolo dell’hash in fase di richiesta e risposta deve essere calcolato con importi con punto così come scambiati con il server.
PayPalVAT 64 NO
PayPalNote 255 NO
PayPalProductCode_Cou CountProdotto: il contatore dei 32 NO
ntProdotto prodotti da inviare. Il totale dei
prodotti è indicato in PayPal
Products
PayPalProductAmount_ Importo del prodotto; 12 NO
CountProdotto utilizzare sempre il punto come separatore decimale, ad esempio12.34perunimporto di12Euroe34centesimi.
11.00corrispondea11euroe
00centesimi, importi senza il punto verranno scartati. I separatori delle migliaia (1,000.01o1.000,01)non sono consentiti.
Anche il calcolo dell’hashinfase di richiesta e risposta deve essere calcolato con importi con punto così come scambiati con il server.
PayPalProductDescriptio n_CountProdotto 32 NO
PayPalProductImgUrl_ CountProdotto 256 NO

Integrazione con MasterPass

Masterpass è il nuovo servizio di pagamento offerto da Mastercard, consente il pagamento su piattaforme e-commerce utilizzando un wallet. L'integrazione del nuovo servizio di pagamento Masterpass sul "MODULO HTML" è tecnicamente trasparente al merchant. L'esercente a sua discrezione può decidere di postare gli indirizzi di spedizione e fatturazione sulla pagina di Masterpass, quindi il titolare del wallet in fase di conferma del pagamento potrà decidere di farsi spedire la merce, scegliendo tra l'indirizzo registrato sul sito dell'esercente o quello riportato sul wallet. Per recuperare l'indirizzo del titolare del wallet registrato su Masterpass, seguire il paragrafo "M". Per visualizzare il contenuto del carrello sulla pagina di Masterpass, valorizzare i campi "Product".  
CAMPO DESCRIZIONE VALORI MAX LENGHT OBBLIGATORIO
MasterPassSender Valorizzare con il parametro "Y"
  • Y
1 NO (SI, se postate qualche campo dedicato a paypal riportato sotto)
MasterPassProducts Numero di prodotti da visualizzare sulla pagina di Master Pass 100 NO (SI, se postate i prodotti da riportare sulla pagina di MasterPass)
MasterPassInvoiceNumber Numero fattura 32 NO
MasterPassSenderPostalCode Codice postale del mittente 8 NO
MasterPassSenderCountryCode Codice nazione de lmittente nelformatoISO31222A3 3 NO
MasterPassDestinationName Rif. spedizione 32 NO
MasterPassDestinationName Rif. spedizione 32 NO
MasterPassDestinationStreet 50 NO
MasterPassDestinationStreet2 50 NO
MasterPassDestinationCity 40 NO
MasterPassDestinationState 32 NO
MasterPassDestinationPostalCode 8 NO
MasterPassDestinatioCountryCode 3 NO
MasterPassBillingName Rif. fatturazione 32 NO
MasterPassBillingstreet 100 NO
MasterPassBillingstreet2 100 NO
MasterPassBillingCity 40 NO
MasterPassBillingState 32 NO
MasterPassBillingPostalCode 8 NO
MasterPassBillingCountryCode 3 NO
MasterPassFreightAmount Importo totale senza spedizione; utilizzare sempre il punto come separatore decimale, ad esempio 12.34 per un importo di 12 Euro e 34 centesimi. 11.00 corrisponde a 11 euro e 00 centesimi, importi senza il punto verranno scartati. I separatori delle migliaia (1,000.01 o 1.000,01) non sono consentiti. Anche il calcolo dell’hash in fase di richiesta e risposta deve essere calcolato con importi con punto così come scambiati con il server. 12 NO
MasterPassTaxAmount Tasse; utilizzare sempre il Punto come separatore decimale, adesempio 12.34 per un importo di 12 Euro e 34 centesimi. 11.00 corrisponde a 11 euro e 00 centesimi, importi senza il punto verranno scartati. I separatori delle migliaia (1,000.01 o 1.000,01) non sono consentiti. Anche il calcolo dell’hash in fase di richiesta e risposta deve essere calcolato con importi con punto così come scambiati con il server 12 NO
MasterPassVAT 64 NO
MasterPassNote 255 NO
MasterPassProductCode_CountProdotto CountProdotto: il contatore dei prodotti da inviare. Il totale dei prodotti è indicato in MasterPassProducts 32 NO
MasterPassProductAmount_CountProdotto Importo del prodotto; utilizzare sempre il punto come separatore decimale, ad esempio 12.34 per un importo di 12 Euro e 34 centesimi. 11.00 corrisponde a 11 euro e 00 centesimi, importi senza il punto verranno scartati. I separatori delle migliaia (1,000.01 o 1.000,01) non sono consentiti. Anche il calcolo dell’hash in fase di richiesta e risposta deve essere calcolato con importi con punto così come scambiati con il server. 12 NO
MasterPassProductDescription_CountProdotto 32 NO

Integrazione con MasterPass, PAN di test

Per l’utilizzo del wallet Masterpass nel nostro ambiente di test è necessario registrare un’utenza ed associare la stessa ad una delle seguenti carte di test messe a disposizione:
Pan Carta Circuito Scadenza CVV
 5506900140100305  Mastercard  -  -
 5506900140100107  Mastercard  -  -
 5506900140100503  Mastercard  -  -
 4440000009900010  Visa  -  -
 4440000042200014  Visa  -  -
 4440000042200022  Visa  -  -

Integrazione con MyBank

Per integrare il proprio sito web con il circuito di pagamento MyBank, dovete seguire le specifiche tecniche delle carte di credito riportate nei paragrafi7.A e7.B. Il campo txntype che indica il tipo di transazione richiesto non viene preso in considerazione se l'utente sulla pagina di "seleziona pagamento" sceglie MyBank visto che la transazione MyBank è sempre di tipo PURCHASE. MyBank permette di eseguire dei pagamenti con contabilizzazione automatica e non stornabili. Nei parametri di risposta se il campo "MYBANK" = 1, significa che l'utente ha pagato con MYBANK, quindi verranno popolati i campi come riportato nel paragrafo L; "PARAMETRI IN RISPOSTA MYBANK" NOTA BENE: In sede di implementazione con il circuito di MyBank il campo “oid” deve essere alfanumerico di 35 caratteri.

Regole del circuito MyBank

Il circuito di pagamento MyBank definisce delle regole per l’utilizzo e la visualizzazione del nome e dei loghi del circuito:
  • Il riferimento corretto al circuito è MyBank. Deve essere escluso ogni riferimento come “Mybank” o “My Bank”;
  • Il messaggio introduttivo al metodo di pagamento dovrebbe essere: “Pagamenti sicuri attraverso il servizio di home banking della propria banca. Per saperne di più www.mybankpayments.ue ”
  • Il payoff di MyBank in italiano è “Pagamenti sicuri. Identità protetta’’, che può essere visualizzato unitamente al logo;
  • In fase di selezione del circuito di pagamento, deve essere presente il logo MyBank. I loghi accettati sono scaricabili dalla sezione “Download” del Back Office;
 
  • Intorno al logo deve essere presente uno spazio libero minimo definito come l’altezza della lettera “M” del marchio denominativo;
  • Il logo MyBank non deve essere ruotato;
  • Il logo MyBank deve essere largo almeno 1cm per la stampa e almeno 80 pixel per l’utilizzo online (immagine a);
  • La dimensione minima del logo MyB può essere più piccola: 0,5 cm per la stampa e 40 pixel per l’utilizzo online (immagine b);
  • Quando si riproduce il logo MyBank con il payoff la dimensione minima per la stampa è di 2,5 cm, online di 300px (immagine c).
  • Gli esercenti possono utilizzare i banner MyBank sui propri siti web per far sapere che offrono pagamenti attraverso MyBank;

NotificationUrl server to server

In fase di richiesta autorizzativa, se è popolato il campo "transactionNotificationURL", il server invia una comunicazione sull' esito della transazione alla pagina esposta dall' esercente. I tentativi di comunicazione seguono le seguenti regole:
  • I dati postati sono identici a quelli inviati sulle URLresponseSuccessURL, responseFailURL.
  • I tentativi verranno fatti finché il server non risponde con esito http 200. Per ogni esito differente, ad esempio 3xx, la notifica verrà considerata fallita.
  • Il primo tentativo è fatto al termine della transazione dell'utente.
  • Se il primo tentativo di notifica non va a buon fine, i contatti verso il server dell'esercente verranno tentati ogni ora fino ad una corretta risposta. Verranno selezionate le transazioni eseguite e non notificate delle ultime 24 ore e fino ad un‘ora prima dell' esecuzione dell' autorizzazione.

InsegnaDinamica (campo freeText)

I merchant che ne richiedono il servizio, ad ogni richiesta autorizzativa se valorizzano il campo "freetext" con un codice alfanumerico di 6 caratteri, tale codice sarà postato sull' estratto conto prodotto dalla banca emittente della carta di credito utilizzata dall' utente, comprensivo dell'insegna del punto vendita. Esempio: se l'insegna del negozio è "PIZZA ITALY", e in fase di richiesta autorizzativa viene postato nel campo "freetext" il codice 34FGNO, sull' estratto conto dell'utente ci sarà; "PIZZA ITALY-34FGNO". Il prodotto si chiama insegna dinamica, perché il codice alfanumerico può cambiare ad ogni operazione di acquisto.

Parametri di risposta

I parametri elencati nella tabella, verranno inviati in risposta alle url di errore e notifica indicate; responseSuccessURL, responseFailURL, transactionNotificationURL. I dettagli della transazione vengono restituiti come parametri POST sulle pagine di conferma; sarà poi necessario decidere quali parametri mostrare a video utilizzando la sintassi del linguaggio scelto.
CAMPO DESCRIZIONE VALORI TIPO
paymentMethod Circuito utilizzato per il pagamento
  • MASTERCARD
  • VISA
  • FINDOMESTIC
  • MASTERPASS
  • PAYPAL
  • DINERS
  • AMEX
oid Codice assegnato all’ordine String[256]
response_hash La stringa viene creata con unhashSHA1utilizzando i seguenti parametri nell’ordine esatto:   ksig+ approval_code+chargetotal +currency+txndatetime+ storename   txndatetime equivale alla data/ora inviata dalla vostra pagina al gateway con nome txndatetime. String[40]
chargetotal Importo della transazione X.XX Long
currency Valuta della transazione EUR
cardnumber Numero della carta di credito, con parte delle cifre mascherate 543212xxxxxxxx33 String
expyear Anno di scadenza della carta Di credito yyyy
expmonth Mese di scadenza della carta Di credito MM
refnumber Codice di riferimento della transazione String[16]
response_code_3dsecure Esitodell’autenticazione3D Secure (Verified by Visa/SecureCode) · Y – carta autenticata · U - impossibile autenticare · N – autenticazione fallita Char[1]
txntype Tipo di transazione AUTH / PURCHASE / CONFIRM / CREDIT / VOID String
txndate_processed Data e ora di elaborazione del pagamento yyyy-MM- ddhh:mm:ss.mmm
ccbin Prime 6 cifre della carta (identificano la banca emittente)
approval_code •se transazione approvata Y: seguito dal codice autorizzativo   •se transazione negata N:seguitodallamotivazione String[8]
status Esito della transazione. Se contiene APPROVATO, APPROVED o GENEHMIGT (in base alla lingua utilizzata) la transazione è andata a buon fine; qualsiasi altro valore identifica una transazione negata. APPROVATO, RIFIUTATO, DUPLICATO, FRAUD, ANNULLATO   APPROVED, REJECTED, DUPLICATED, FRAUD, CANCELLED   GENEHMIGHT, ZURÜCKGEWIESEN, DUPLIKAT, BETRUG, ABGESAGT String
timezone Fuso orario CET
terminal_id Codice del terminale virtuale. String[16]
processor_response_ code Codice di risposta della transazione. Riporta il codice associato all’errore; se la transazione non è andata a buon fine. (APPENDICE A) String
additional_fee Eventuali spese aggiuntive richieste dal circuito (Findomestic)
invoicenumber Numero di fattura inviato in Fase di chiamata. String[256]
addInfo3 Dettagli aggiuntivi inviati in Fase di chiamata. String[256]
addInfo4 Dettagli aggiuntivi inviati in Fase di chiamata. String[256]
PendingAmount Importo non confermato o riaccreditato Long
freeText Utilizzato per la funzionalità di “insegna dinamica” descritta nel paragrafo N String[256]
ERROR_LIST Lista di errori in fase di inizializzazione di chiamata. Gli errori sono inseriti in un’unica stringa.
MYBANK Indica se la modalità di pagamento scelta dall’utente è MyBank. In questo caso consideriamo come parametro 0 0 = transazione non MyBank 1 = transazione MyBank Int[1]

Parametri in risposta MyBank

I parametri elencati nella tabella, verranno inviati in risposta alle url di errore e notifica indicate; responseSuccessURL, responseFailURL, transactionNotificationURL. I dettagli della transazione di un pagamento MyBank vengono restituiti come parametri POST sulle pagine di conferma; sarà poi necessario decidere quali parametri mostrare a video utilizzando la sintassi del linguaggio scelto.
CAMPO DESCRIZIONE VALORI TIPO
paymentMethodh Circuito utilizzato per il pagamento MyBank
oid Codice assegnato all’ordine String[256]
response_hash La stringa viene creata con unhashSHA1utilizzando i seguenti parametri nell’ordine esatto: ksig+ approval_code+chargetotal +currency+txndatetime+ storename txndatetime equivale alla data/ora inviata dalla vostra pagina al gateway con nome txndatetime. String[40]
chargetotal Importo della transazione X.XX Long
currency Valuta della transazione EUR
refnumber Codice di riferimento della transazione String[16]
tnxtype Tipo transazione (indifferente, la transazione verrà sempre contabilizzata)
  • PURCHASE
String
txndate_processed Data e ora di elaborazione del pagamento
approval_code
  • se transazione approvata Y: seguito dal codice autorizzativo
  • se transazione negata
N: seguitodallamotivazione
String[8]
status Esito della transazione.
  • PENDING
  • AUTHORISED (transazione approvata)
  • ERROR
  • AUTHORISINGPARTYABORTED
  • TIMEOUT
  • ANNULLATO/ CANCELLED/ ABGESAGT (se annullato direttamente dalla pagina di Axepta)
String
terminal_id Codice del terminale virtuale String[16]
processor_response_code Esito della transazione.
  • PENDING
  • AUTHORISED (transazione approvata)
  • ERROR
  • AUTHORISINGPARTYABORTED
  • TIMEOUT
  • ANNULLATO/ CANCELLED/ ABGESAGT (se annullato direttamente dalla pagina di Axepta)
String
ERROR_LIST Lista di errori in fase di inizializzazione di chiamata. Gli errori sono tutti immessi in un'unica stringa.
MYBANK Indica se la modalità di pagamento scelta dall’utente è MyBank, In questo caso consideriamo come parametro 1 0=transazione non MyBank 1= transazione MyBank Int[1]
MYBANKdatacreationorder Data e ora di creazione dell’ordine yyyy-MM-ddhh:mm:ss.mmm
MYBANKtranid L’ID della transazione MyBank generata dal sistema di Axepta String[16]

Parametri in risposta MasterPass/PayPal (indirizzi e dati di fatturazione del titolare di carta)

Il wallet è un borsellino elettronico, dove l'utente oltre ad aver registrato le proprie carte di credito, ha impostato anche i suoi dati personali, compreso anche l' indirizzo di residenza e i possibili dati di fatturazione. Riportiamo di seguito i campi postati in risposta alla transazione quindi l'esercente può utilizzarli a sua discrezione.
CAMPO DESCRIZIONE FORMATO
level3Info_invoiceNumber Numero fattura String[32]
level3Info_senderPostalCode Codice postale mittente String[8]
level3Info_senderCountryCode Codice nazionale mittente nel formato ISO 3122 A3 String[3]
level3Info_destinationName Rif. spedizione: Destinatario String[32]
level3Info_destinationStreet Rif. spedizione: Dati Indirizzo String[100]
level3Info_destinationStreet2 Rif. spedizione: Dati Indirizzo String[100]
level3Info_destinationCity Rif. spedizione: Città String[40]
level3Info_destinationState Rif. spedizione: Stato (se presente) String[32]
level3Info_destinationPostalCode Rif. spedizione: Codice Postale String[8]
level3Info_destinationCountryCode Rif. spedizione: Codice nazionale nel formato ISO 3122 A3 String[3]
level3Info_billingName Rif. fatturazione: Destinatario String[32]
level3Info_billingStreet Rif. fatturazione : Dati Indirizzo String[100]
level3Info_billingStreet2 Rif. fatturazione : Dati Indirizzo String[100]
level3Info_billingCity Rif.fatturazione: Città String[ 40]
level3Info_billingState Rif. fatturazione: stato ( se presente) String[32]
level3Info_billingPostalCode Rif. fatturazione: codice postale String[8]
level3Info_billingCountryCode Rif. fatturazione: Codice nazionale nel formato ISO 3122 A3 String[3]
level3Info_freightAmount Importo totale senza spedizione String[12]
level3Info_taxAmount Tasse String[12]
level3Info_vat Codice fiscale / Partita I.V.A. String[64]
level3Info_note Note String[255]
level3Info_product Lista articoli presenti nell’ordine Livel3InfoProduct

Appendice A – Codici di ritorno

CODICE DESCRIZIONE
IGFS_000 TRANSAZIONE OK
IGFS_00051 INSTITUTION ID NON PRESENTE.
IGFS_001 DESTINATARIO SCONOSCIUTO
IGFS_00155 BATCH TRACK ID NON VALIDO.
IGFS_00156 BATCH TRACK ID NON UNIVOCO
IGFS_00157 STRUMENTO PAGAMENTO NON VALIDO.
IGFS_00158 NUMERO CARTA NON NUMERICO
IGFS_00159 NUMERO CARTA NON PRESENTE
IGFS_002 CARTA SCADUTA
IGFS_00202 TENTATIVO HACK RILEVATO
IGFS_00203 ACCESSO NON VALIDO:ULITIZZARE METODO POST
IGFS_00253 MAXIMUM CREDIT VOLUME EXCEEDED.
IGFS_00254 MAXIMUM CARD DEBIT VOLUME EXCEEDED.
IGFS_00255 MAXIMUM CARD CREDIT VOLUME EXCEEDED.
IGFS_00256 MAXIMUM CARD TRANSACTION COUNT EXCEEDED.
IGFS_00257 MAXIMUM TRANSACTION AMOUNT EXCEEDED.
IGFS_00260 TRANSACTION DENIED: CREDITS EXCEED CAPTURES
IGFS_00261 TRANSACTION DENIED: CAPTURES EXCEED AUTHORIZATIONS
IGFS_003 CARTA ERRATA
IGFS_00300 INSTITUTION ID NON PRESENTE.
IGFS_00301 RISK PROFILE ID NON PRESENTE.
IGFS_00302 CODICE VALUTA NON PRESENTE.
IGFS_004 CARTA IN BLACK LIST - RITIRARE
IGFS_00451 MERCHANT ID NON PRESENTE.
IGFS_00452 TERMINAL ID NON PRESENTE.
IGFS_00453 TERMINAL ID NON PRESENTE.
IGFS_00454 TERMINAL ID NON VALIDO
IGFS_00456 TERMINAL ID NON VALIDO
IGFS_005 ERRORE DI FORMATO
IGFS_006 ERRORE FILE SYSTEM
IGFS_007 ERRORE DI COMUNICAZIONE
IGFS_00701 IL BATCH NON PROCESSATO
IGFS_00702 IL BATCH NON RIAVVIATO
IGFS_00704 BATCH ID NON NUMERICO
IGFS_00705 BATCH ID NON PRESENTE
IGFS_008 AUTORIZZAZIONE NEGATA
IGFS_009 RITIRARE CARTA
IGFS_00950 DIRECTORY BATCH UPLOAD NON PRESENTE
IGFS_00951 DIRECTORY BATCH DOWNLOAD NON PRESENTE
IGFS_00952 NOME DIRECTORY ARCHIVIAZIONE BATCH NON PRESENTE
IGFS_010 MERCHANT NON ABILITATO
IGFS_01000 TRANSAZIONE NEGATA DAL RISCHIO
IGFS_011 CONTATTARE ACQUIRER
IGFS_014 MERCHANT NON CONVENZIONATO
IGFS_015 ACQUIRER NON GESTITO
IGFS_016 CARTA IN RANGE NEGATIVO O STRANIERA
IGFS_018 CARTA INESISTENTE
IGFS_020 CARTA INVALIDA
IGFS_021 CODICE MERCHANT ERRATO
IGFS_029 DATA SCADENZA ERRATA
IGFS_030 FONDI INSUFFICIENTI
IGFS_032 IMPORTO NON VALIDO
IGFS_033 TRANSAZIONE ORIGINALE NON TROVATA
IGFS_083 ERRORE CIFRATURA TRANSAZIONE
IGFS_085 CODICE DIVISA ERRATO
IGFS_086 MALFUNZIONAMENTO SISTEMA
IGFS_087 ACQUIRER NON RAGGIUNGIBILE
IGFS_088 MANCATA RISPOSTA DA ACQUIRER
IGFS_091 MALFUNZIONAMENTO SISTEMA ACQUIRER
IGFS_092 TRANSAZIONE SCONOSCIUTA
IGFS_093 CONFERMA GIA' PRESENTE
IGFS_094 CREDITO GIA' PRESENTE
IGFS_095 STORNO PER NOTIFICA INESISTENTE
IGFS_096 STORNO PER AUTORIZZAZIONE INESISTENTE
IGFS_097 CONFERMA PER AUTORIZZAZIONE INESISTENTE
IGFS_098 IMPORTO SUPERIORE AD IMPORTO AUTORIZZATO
IGFS_10000 CARATTERI NON VALIDI
IGFS_101 MAC ERRATO
IGFS_102 SOSPETTA FRODE
IGFS_104 CARTA SOGGETTA A RESTRIZIONI
IGFS_107 CONTATTARE ISSUER
IGFS_108 CONTATTARE ISSUER:CASO SPECIALE
IGFS_112 INSERIRE PIN
IGFS_115 FUNZIONE NON SUPPORTATA SU CARTA
IGFS_117 PIN ERRATO
IGFS_118 CONTO NON TROVATO O NON ABILITATO
IGFS_119 OPERAZIONE NON PERMESSA AL TITOLARE
IGFS_121 SUPERATO LIMITE IMPORTO
IGFS_122 ERRORE SICUREZZA
IGFS_123 SUPERATO LIMITE FREQUENZA
IGFS_125 ACQUIRER NON GESTITO
IGFS_129 SOSPETTA FRODE SU CARTA
IGFS_160 CARTA PERSA
IGFS_164 DATA ANTEC. A BLOCCO CARTA
IGFS_180 DATI ERRATI
IGFS_181 DATI SENSIBILI ERRATI
IGFS_189 BIN IN RANGE NEGATIVO
IGFS_1921 3DS:UNABLE TO AUTENTICATE
IGFS_1922 3DS:AUTENTICATION ERROR
IGFS_1923 3DS:UNABLE TO VERIFY (VERES=U)
IGFS_200 RITIRARE CARTA
IGFS_20000 DATI MANCANTI
IGFS_20001 CODICE AZIONE NON VALIDO
IGFS_20002 SESSIONE SCADUTA
IGFS_20003 COOKIES NON ABILITATI
IGFS_20006 BRAND NON VALIDO
IGFS_20007 STATO ORDINE NON VALIDO
IGFS_20010 URL INVIO RISPOSTA NON VALIDO
IGFS_20011 URL INVIO ERRORE NON VALIDO
IGFS_20012 TRACK ID NON VALIDO
IGFS_20013 CODICE LINGUA NON VALIDO
IGFS_20014 CAMPO UDF NON VALIDO
IGFS_20015 NOME CARTA NON VALIDO
IGFS_20016 INDIRIZZO NON VALIDO
IGFS_20017 CAP NON VALIDO
IGFS_20018 CVV2 NON VALIDO
IGFS_20019 TRANSACTION ID. NON VALIDO
IGFS_20020 CAMPO USER IDENTIFIER NON VALIDO
IGFS_20021 CAMPO API VERSION NON VALIDO
IGFS_20022 CAMPO SIGNATURE NON VALIDO
IGFS_20023 CAMPO PAYMENT ID NON VALIDO
IGFS_20024 CODICE AUTORIZZAZIONE MANCANTE
IGFS_20025 CAMPO REFERENCE DATA NON VALIDO
IGFS_20026 SHOP ID DUPLICATO
IGFS_20027 FORMATO RICHIESTA NON VALIDO
IGFS_20028 DATI BATCH MANCANTI
IGFS_20029 DATI BATCH NON VALIDI
IGFS_20030 DIRECTORY DATI BATCH NON VALIDA
IGFS_20031 DATI BATCH DUPLICATI
IGFS_20032 NOME BATCH FILE NON VALIDO
IGFS_20033 DATI BATCH NON TROVATI
IGFS_20034 BATCH TRACK ID NON VALIDO
IGFS_20035 ORDERID NON VALIDO
IGFS_20036 PAN NON VALIDO
IGFS_20037 CVV2 NON VALIDO
IGFS_20038 EXPIRE DATE NON VALIDA
IGFS_20040 MPI VERIFIED NON VALIDA
IGFS_20041 MPI AUTHORIZED NON VALIDA
IGFS_20042 MPI CAVV NON VALIDA
IGFS_20043 MPI XID DATE NON VALIDA
IGFS_20044 CAMPO PAYMENT DESCRIPTION NON VALIDO
IGFS_20045 PAYMENT INSTRUMENT TOKEN ID ERRATO
IGFS_20046 FREE TEXT ERRATO
IGFS_20048 ERRORE PROCESSAMENTO PAYMENT INSTRUMENT TOKEN
IGFS_20049 TOPUPID ERRATO
IGFS_20050 CODICE POSTALE MITTENTE NON VALIDO
IGFS_20051 CODICE POSTALE DESTINATARIO NON VALIDO
IGFS_20052 CODICE NAZIONE DESTINATARIO NON VALIDO
IGFS_20053 IMPORTO SPEDIZIONE NON VALIDO
IGFS_20056 IMPORTO TASSE NON VALIDO
IGFS_20057 ELENCO ARTICOLI MANCANTE
IGFS_20058 CODICE ARTICOLO NON VALIDO
IGFS_20059 DESCRIZIONE ARTICOLO NON VALIDO
IGFS_20060 NUMERO NON VALIDO
IGFS_20062 IMPORTO ARTICOLO NON VALIDO
IGFS_20065 NUMERO MASSIMO PRODOTTI SUPERATO
IGFS_20066 CODICE NAZIONE MITTENTE NON VALIDO
IGFS_20067 NOME DESTINATARIO NON VALIDO
IGFS_20068 INDIRIZZO DESTINATARIO NON VALIDO
IGFS_20069 CITTA DESTINATARIO NON VALIDA
IGFS_20070 STATO DESTINATARIO NON VALIDO
IGFS_20071 CODICE VAT NON VALIDO
IGFS_20072 NOME FATTURA NON VALIDO
IGFS_20073 INDIRIZZO FATTURA NON VALIDO
IGFS_20074 CITTA FATTURA NON VALIDA
IGFS_20075 STATO FATTURA NON VALIDO
IGFS_20076 CODICE POSTALE FATTURA NON VALIDO
IGFS_20077 CODICE NAZIONE FATTURA NON VALIDO
IGFS_20078 NUMERO FATTURA NON VALIDO
IGFS_20079 NOTE AL VENDITORE NON VALIDE
IGFS_20080 PAYPASSDATA ERRATO
IGFS_20081 PROMOCODE ERRATO
IGFS_20082 ACCNTNAME ERRATO
IGFS_20083 AUTHCODE ERRATO
IGFS_20084 BUYERNAME ERRATO
IGFS_20085 BUYERACCNT ERRATO
IGFS_20086 IPBUYER ERRATO
IGFS_20090 TRANSAZIONE CANCELLATA DALL'UTENTE
IGFS_20100 ERRORE NOTIFICA MERCHANT
IGFS_208 CARTA PERSA
IGFS_209 CARTA RUBATA
IGFS_400 STORNO OK
IGFS_800 TERMINALE NON ABILITATO
IGFS_801 BANCA SELEZIONATA ERRATA
IGFS_802 TENTATIVI PIN ESAURITI
IGFS_803 CODICE TERMINALE ERRATO
IGFS_804 CHIAVE DISALLINEATA
IGFS_805 ERRORE CIFRATURA
IGFS_807 TERMINALE CHIUSO
IGFS_808 TERMINALE NON CHIUSO
IGFS_809 ERRORE SEQUENZA
IGFS_810 TERMINALE NON RICONOSCIUTO
IGFS_811 TERMINALE BLOCCATO
IGFS_812 TERMINALE CHIUSO FORZ.
IGFS_813 OPERAZIONE NON PERMESSA
IGFS_814 TRANSAZIONE IN CORSO
IGFS_815 CARTA BLOCCATA
IGFS_888 IN ATTESA DI COMPLETAMENTO
IGFS_90000 DATABASE ERROR
IGFS_90005 TIMESTAMP ERRATO.
IGFS_902 TRANSAZIONE NON VALIDA
IGFS_903 REINVIARE TRANSAZIONE
IGFS_907 EMITTENTE NON ADERENTE
IGFS_908 DESTINAZIONE NON TROVATA
IGFS_909 ERRORE DI SISTEMA
IGFS_910 SISTEMA ISSUER NON ATTIVO
IGFS_911 TIME OUT
IGFS_912 ISSUER NON RAGGIUNGIBILE
IGFS_913 TRANSAZIONE DUPLICATA
IGFS_934 NOTIFICA RIFIUTATA
IGFS_990 STRUMENTO PAGAMENTO NON ATTIVO

Appendice B – PayPal codici di ritorno

CODICE DESCRIZIONE
IGFS 888 PENDING TRANSACTION,EXECUTE CHECKOUT
IGFS 20050 CODICE POSTALE MITTENTE NON VALIDO
IGFS_20051 CODICE POSTALE RIF. DI SPEDIZIONE NON VALIDO
IGFS_20052 CODICE NAZIONE RIF. 0 1 SPEDIZIONE NON VALIDO
IGFS 20053 IMPORTO SPEDIZIONE NON VALIDO
IGFS_20056 IMPORTO TASSE NON VALIDO
IGFS_20057 VALORE NUMERO ARTICOLI NON PRESENTE
IGFS 20058 CODICE ARTICOLO NON VALIDO
IGFS_20059 DESCRIZIONE ARTICOLO NON VALIDO
IGFS_20060 VALORE NUMERO ARTICOLI NON VALIDO
IGFS 20062 IMPORTO ARTICOLO NON VALIDO
IGFS_20065 SUPERATO LIMITE NUMERO ARTICOLI
IGFS_20066 CODICE NAZIONE MITTENTE NON VALIDO
IGFS 20067 RIFERIMENTO SPEDIZIONE NON VALIDO
IGFS_20068 INDIRIZZO RIF. SPEDIZIONE NON VALIDO
IGFS_20069 CITTA' RIF. SPEDIZIONE NON VALIDO
IGFS_20070 STATO RIF. SPEDIZIONE NON VALIDO
IGFS_20071 CODICE FISCALE NON VALIDO
IGFS_20072 CODICE POSTALE RIF. DI FATTURAZIONE NON VALIDO
IGFS_20073 CODICE NAZIONE RIF. FATTURAZIONE NON VALIDO
IGFS_20074 RIFERIMENTO FATTURAZIONE NON VALIDO
IGFS_20075 INDIRIZZO RIF. FATTURAZIONE NON VALIDO
IGFS_20076 CITTA' RIF FATTURAZIONE NON VALIDO
IGFS 20077 STATO RIF. FATTURAZIONE NON VALIDO