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".
CampoDescrizioneValoriMAX LenghtObbligatorio
txntypeTipo transazioneAUTH • PURCHASE • CONFIRM • CREDIT • VOIDSI
timezoneFuso orario della transazione; quello italiano è CET• CET • GMT • EETSI
txndatetimeData e ora della transazione.AAAA:MM:GG- hh:mm:ssSI
hashValorehashSHA1calcolato sulla base dei seguenti campi:   storename+txndatetime + chargetotal +currency + ksig     È importante che l’hash sia generato passando alla funzione i campi in questo esatto ordineSI
storenameId del terminale fornito dal Servizio Esercenti.16SI
modeTipologia di pagamento.   Parametro fisso a payonlypayonlySI
chargetotalImporto 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.xx12SI
currencyValuta della transazioneEURSI
oidIdentificativo dell'ordine lato esercente.   Se non viene valorizzato, il sistema e- Positivity calcola un valore random.   Per i caratteri accettati riferirsi al par 7.F256NO
responseSuccessURLurl di indirizzamento in caso di transazione andata a buon fine512SI
responseFailURLurl di indirizzamento in caso di transazione negata512SI
transactionNotificationURLurl di una pagina esposta dall' esercente dove resta in attesa di notifica di pagamento da parte del sistema "e-Positivity"512NO
invoicenumberPuò contenere qualsiasi valore, ad esempio il numero fattura256NO
languageLinguaggio della pagina di pagamento. Di default è IT• IT • EN • DENO
addInfo3Campo descrittivo libero256NO
addInfo4Campo descrittivo libero256NO
emailE-mail del titolare di carta, dove verrà inviatala conferma del pagamento256NO
timeoutTempo massimo di inizializzazione Della transazione espresso in msNO
hosteddataidAlias da memorizzare32NO
hosteddataidtypeTipo di associazione alias. (Per generazione automatica dell'alias). Per associazioni dell' esercente valore fisso A• ANO
freeTextUtilizzato per la funzionalità di “insegna dinamica” descritta nel paragrafo N256NO

Autorizzazione con contabilizzazione (PURCHASE)

Viene fatta l'autorizzazione con relativa contabilizzazione, quindi l'esercente verrà accreditato e il titolare di carta addebitato.
CAMPODESCRIZIONEVALORIMAX LENGHTOBBLIGATORIO
txntypeTipo transazione
  • AUTH
  • PURCHASE
  • CONFIRM
  • CREDIT
  • VOID
SI
timezoneFuso orario della transazione; quello italiano è CET
  • CET
  • GMT
  • EET
SI
txndatetimeData e ora della transazione.AAAA:MM:GG- hh:mm:ssSI
hashValore 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 ordineSI
storenameId del terminale fornito dal ServizioEsercenti.16SI
modeTipologia di pagamento. Parametro fisso a payonlypayonlySI
chargetotalImporto 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.xx12SI
currencyValuta della transazioneEURSI
oidIdentificativo dell'ordine lato esercente. Se non viene valorizzato, il sistema e- Positivity calcola un valore random. Per i caratteri accettati riferirsi al par 7.F256SI
responseSuccessURLURL di indirizzamento in caso di Transazione andata a buon fine512SI
responseFailURLurl di indirizzamento in caso di transazione negata512SI
transactionNotificationURLurl di una pagina esposta dall' esercente dove resta in attesa di notifica di pagamento da parte del sistema e- Positivity.512NO
invoicenumberPuò contenere qualsiasi valore, ad esempio il numero fattura256NO
languageLinguaggio della pagina di pagamento. Di default è IT
  • IT
  • EN
  • DE
NO
addInfo3Campo descrittivo libero256NO
addInfo4Campo descrittivo libero256NO
emailE-mail del titolare di carta, dove verrà inviata la conferma del pagamento256NO
timeoutTempo massimo di inizializzazione della transazione espresso in ms.NO
hosteddataidAlias da memorizzare32NO
hosteddataidtypeTipo di associazione alias. Per associazioni dell' esercente valore fisso A
  • A
NO
freeTextUtilizzato per la funzionalità di “insegna dinamica” descritta nel paragrafo N256NO

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".
CAMPODESCRIZIONEVALORIMAX LENGHTOBBLIGATORIO
RefTransactionIdTransaction id della transazione da stornare16SI
txntypeTipo transazione• AUTH • PURCHASE • CONFIRM • CREDIT • VOIDSI
timezoneFuso orario della transazione; quello italiano è CET• CET • GMT • EETSI
txndatetimeData e ora della transazione.AAAA:MM:GG- hh:mm:ssSI
hashValorehashSHA1calcolato Sulla base dei seguenti campi:   storename+txndatetime + chargetotal +currency + ksig     È importante che l’hash sia generato passando alla funzione i campi in questo esatto ordineSI
storenameId del terminale restituito dal parametro di ritorno "terminal_id" dopo la richiesta di autorizzazione.16SI
modeTipologia di pagamento.   Parametro fisso a payonlypayonlySI
chargetotalImporto della transazione; utilizzare sempre il punto come separatore decimale, ad esempio12.34perunimporto di12Euroe34centesimi.   11.00corrispondea11euroex.xx· xxxx.xx12SI
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.
currencyValuta della transazioneEURSI
oidIdentificativo dell'ordine lato esercente.   Se non viene valorizzato, il sistema e-Positivity calcola un valore random Per i caratteri accettati riferirsi al par 7.F256NO
responseSuccessURLurl di indirizzamento in caso di transazione andata a buon fine512SI
responseFailURLurl di indirizzamento in caso di transazione negata512SI
transactionNotificationUR Lurl di una pagina esposta dall' esercente dove resta in attesa d notifica di pagamento da parte del sistema e_Positivity "MODULO HTML "512NO
invoicenumberPuò contenere qualsiasi valore, ad esempio il numero fattura256NO
languageLinguaggio della pagina di pagamento. Di default è IT• IT • EN • DENO
addInfo3Campo descrittivo libero256NO
addInfo4Campo descrittivo libero256NO
emailE-mail del titolare di carta, dove verrà inviata la conferma del pagamento256NO
timeoutTempo massimo di esecuzione Della transazione espresso in msNO

Credito di una transazione contabilizzata (CREDIT)

La funzione CREDIT permette di riaccreditare una transazione eseguita in precedenza, con PURCHASE o CONFIRM.
CAMPODESCRIZIONEVALORIMAX LENGHTOBBLIGATORIO
SplitTranIndica se si vuole riaccreditare Solo una parte dell'importo in precedenza autorizzato• TRUE • FALSESI
RefTransactionIdTransaction id della transazione Da riaccreditare16SI
txntypeTipo transazione• AUTH • PURCHASE • CONFIRM • CREDIT • VOIDSI
timezoneFuso orario della transazione; quello italiano è CET• CET • GMT • EETSI
txndatetimeData e ora della transazione.AAAA:MM:GG- hh:mm:ssSI
hashValorehashSHA1calcolato Sulla base dei seguenti campi:   storename+txndatetime + chargetotal + currency + ksig.     È importante che l’hash sia generato passando alla funzione i campi in questo esatto ordineSI
storenameId del terminale restituito dal parametro di ritorno "terminal_id" dopo la richiesta di movimentazione.16SI
modeTipologia di pagamento.   Parametro fisso a payonlypayonlySI
chargetotalImporto 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.xx12SI
currencyValuta della transazioneEURSI
oidIdentificativo dell'ordine lato esercente.   Se non viene valorizzato, il sistema e-Positivity calcola un valore random Per i caratteri accettati riferirsi al par 7.F256NO
responseSuccessURLUrl di indirizzamento in caso di Transazione andata a buon fine512SI
responseFailURLUrl di indirizzamento in caso di Transazio nenegata512SI
transactionNotificationURLurl di una pagina esposta dall' esercente dove resta in attesa di notifica di pagamento da parte512NO
invoicenumberPuò contenere qualsiasi valore, ad esempio il numero fattura256NO
languageLinguaggio della pagina di pagamento. Di default è IT• IT • EN • DENO
addInfo3Campo descrittivo libero256NO
addInfo4Campo descrittivo libero256NO
emailE-mail del titolare di carta, dove verrà inviata la conferma del pagamento256NO
timeoutTempo massimo di esecuzione della transazione espresso in msNO

Conferma di una transazione non contabilizzata (CONFIRM)

La funzione CONFIRM permette di confermare una transazione non contabilizzata eseguita in precedenza con la funzione AUTH.
CAMPODESCRIZIONEVALORIMAX LENGHTOBBLIGATORIO
SplitTranIndica se si vuole confermare Solo una parte dell'importo in precedenza autorizzato• TRUE • FALSESI
RefTransactionIdTransaction id della transazione Da confermare16SI
txntypeTipo transazione• AUTH • PURCHASE • CONFIRM • CREDIT • VOIDSI
timezoneFuso orario della transazione; quello italiano è CET• CET • GMT • EETSI
txndatetimeData e ora della transazione.AAAA:MM:GG- hh:mm:ssSI
hashValorehashSHA1calcolato 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
storenameId de lterminale restituito dal parametro di ritorno; "terminal_id", dopo la richiesta di autorizzazione.16SI
modeTipologia di pagamento. Parametro fisso a payonlypayonlySI
chargetotalImporto 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.xx12SI
currencyValuta della transazioneEUR
oidIdentificativo dell'ordine lato esercente.   Se non viene valorizzato, il sistema e-Positivity calcola un valore random Per i caratteri accettati riferirsi al par 7.F256NO
responseSuccessURLURL di indirizzamento in caso di Transazione andata a buon fine512SI
responseFailURLURL di indirizzamento in caso di Transazione negata512SI
transactionNotificationURLURL di una pagina esposta dall' esercente dove resta in attesa di notifica di pagamento da parte del "MODULO HTML "512NO
invoicenumberPuò contenere qualsiasi valore, ad esempio il numero fattura256NO
languageLinguaggio della pagina di pagamento. Di default è IT• IT • EN • DENO
addInfo3Campo descrittivo libero256NO
addInfo4Campo descrittivo libero256NO
emailE-mail del titolare di carta, dove verrà inviata la conferma del pagamento256NO
timeoutTempo massimo di esecuzione Della transazione espresso in msNO

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.
CAMPODESCRIZIONEVALORIMAX LENGHTOBBLIGATORIO
PayPalSenderValorizzare con il parametro "Y"• Y1NO (SI, se postate qualche campo dedicato a paypal riportato sotto)
PayPalProductsNumero di prodotti da Visualizzare sulla pagina di PayPal100NO(SI, se postate i prodotti da riportare sulla pagina d PayPal)
PayPalInvoiceNumberNumero fattura32NO
PayPalSenderPostalCodeCodice postale del mittente8NO
PayPalSenderCountryCodeCodice nazione del mittente nelformatoISO31222A33NO
PayPalDestinationNameRif. spedizione32NO
PayPalDestinationStreet100NO
PayPalDestinationStreet2100NO
PayPalDestinationCity40NO
PayPalDestinationState32NO
PayPalDestinationPostalCo de8NO
PayPalDestinatioCountry Code3NO
PayPalBillingNameRif. fatturazione32NO
PayPalBillingstreet100NO
PayPalBillingstreet2100NO
PayPalBillingCity40NO
PayPalBillingState32NO
PayPalBillingPostalCode8NO
PayPalBillingCountryCode3NO
PayPalFreightAmountImporto 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.12NO
PayPalTaxAmountTasse; utilizzare sempre il Punto come separatore decimale, adesempio12.34 per un importo di12Euroe34 centesimi.   11.00corrispondea11euroe 00centesimi, importi senza il punto verranno scartati.12NO
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.
PayPalVAT64NO
PayPalNote255NO
PayPalProductCode_CouCountProdotto: il contatore dei32NO
ntProdottoprodotti da inviare. Il totale dei
prodotti è indicato in PayPal
Products
PayPalProductAmount_Importo del prodotto;12NO
CountProdottoutilizzare 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_CountProdotto32NO
PayPalProductImgUrl_ CountProdotto256NO

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".  
CAMPODESCRIZIONEVALORIMAX LENGHTOBBLIGATORIO
MasterPassSenderValorizzare con il parametro "Y"
  • Y
1NO (SI, se postate qualche campo dedicato a paypal riportato sotto)
MasterPassProductsNumero di prodotti da visualizzare sulla pagina di Master Pass100NO (SI, se postate i prodotti da riportare sulla pagina di MasterPass)
MasterPassInvoiceNumberNumero fattura32NO
MasterPassSenderPostalCodeCodice postale del mittente8NO
MasterPassSenderCountryCodeCodice nazione de lmittente nelformatoISO31222A33NO
MasterPassDestinationNameRif. spedizione32NO
MasterPassDestinationNameRif. spedizione32NO
MasterPassDestinationStreet50NO
MasterPassDestinationStreet250NO
MasterPassDestinationCity40NO
MasterPassDestinationState32NO
MasterPassDestinationPostalCode8NO
MasterPassDestinatioCountryCode3NO
MasterPassBillingNameRif. fatturazione32NO
MasterPassBillingstreet100NO
MasterPassBillingstreet2100NO
MasterPassBillingCity40NO
MasterPassBillingState32NO
MasterPassBillingPostalCode8NO
MasterPassBillingCountryCode3NO
MasterPassFreightAmountImporto 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.12NO
MasterPassTaxAmountTasse; 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 server12NO
MasterPassVAT64NO
MasterPassNote255NO
MasterPassProductCode_CountProdottoCountProdotto: il contatore dei prodotti da inviare. Il totale dei prodotti è indicato in MasterPassProducts32NO
MasterPassProductAmount_CountProdottoImporto 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.12NO
MasterPassProductDescription_CountProdotto32NO

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 CartaCircuitoScadenzaCVV
 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.
CAMPODESCRIZIONEVALORITIPO
paymentMethodCircuito utilizzato per il pagamento
  • MASTERCARD
  • VISA
  • FINDOMESTIC
  • MASTERPASS
  • PAYPAL
  • DINERS
  • AMEX
oidCodice assegnato all’ordineString[256]
response_hashLa 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]
chargetotalImporto della transazioneX.XXLong
currencyValuta della transazioneEUR
cardnumberNumero della carta di credito, con parte delle cifre mascherate543212xxxxxxxx33String
expyearAnno di scadenza della carta Di creditoyyyy
expmonthMese di scadenza della carta Di creditoMM
refnumberCodice di riferimento della transazioneString[16]
response_code_3dsecureEsitodell’autenticazione3D Secure (Verified by Visa/SecureCode)· Y – carta autenticata · U - impossibile autenticare · N – autenticazione fallitaChar[1]
txntypeTipo di transazioneAUTH / PURCHASE / CONFIRM / CREDIT / VOIDString
txndate_processedData e ora di elaborazione del pagamentoyyyy-MM- ddhh:mm:ss.mmm
ccbinPrime 6 cifre della carta (identificano la banca emittente)
approval_code•se transazione approvata Y: seguito dal codice autorizzativo   •se transazione negata N:seguitodallamotivazioneString[8]
statusEsito 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, ABGESAGTString
timezoneFuso orarioCET
terminal_idCodice del terminale virtuale.String[16]
processor_response_ codeCodice di risposta della transazione. Riporta il codice associato all’errore; se la transazione non è andata a buon fine. (APPENDICE A)String
additional_feeEventuali spese aggiuntive richieste dal circuito (Findomestic)
invoicenumberNumero di fattura inviato in Fase di chiamata.String[256]
addInfo3Dettagli aggiuntivi inviati in Fase di chiamata.String[256]
addInfo4Dettagli aggiuntivi inviati in Fase di chiamata.String[256]
PendingAmountImporto non confermato o riaccreditatoLong
freeTextUtilizzato per la funzionalità di “insegna dinamica” descritta nel paragrafo NString[256]
ERROR_LISTLista di errori in fase di inizializzazione di chiamata. Gli errori sono inseriti in un’unica stringa.
MYBANKIndica se la modalità di pagamento scelta dall’utente è MyBank. In questo caso consideriamo come parametro 00 = transazione non MyBank 1 = transazione MyBankInt[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.
CAMPODESCRIZIONEVALORITIPO
paymentMethodhCircuito utilizzato per il pagamentoMyBank
oidCodice assegnato all’ordineString[256]
response_hashLa 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]
chargetotalImporto della transazioneX.XXLong
currencyValuta della transazioneEUR
refnumberCodice di riferimento della transazioneString[16]
tnxtypeTipo transazione (indifferente, la transazione verrà sempre contabilizzata)
  • PURCHASE
String
txndate_processedData e ora di elaborazione del pagamento
approval_code
  • se transazione approvata Y: seguito dal codice autorizzativo
  • se transazione negata
N: seguitodallamotivazione
String[8]
statusEsito della transazione.
  • PENDING
  • AUTHORISED (transazione approvata)
  • ERROR
  • AUTHORISINGPARTYABORTED
  • TIMEOUT
  • ANNULLATO/ CANCELLED/ ABGESAGT (se annullato direttamente dalla pagina di Axepta)
String
terminal_idCodice del terminale virtualeString[16]
processor_response_codeEsito della transazione.
  • PENDING
  • AUTHORISED (transazione approvata)
  • ERROR
  • AUTHORISINGPARTYABORTED
  • TIMEOUT
  • ANNULLATO/ CANCELLED/ ABGESAGT (se annullato direttamente dalla pagina di Axepta)
String
ERROR_LISTLista di errori in fase di inizializzazione di chiamata. Gli errori sono tutti immessi in un'unica stringa.
MYBANKIndica se la modalità di pagamento scelta dall’utente è MyBank, In questo caso consideriamo come parametro 10=transazione non MyBank 1= transazione MyBankInt[1]
MYBANKdatacreationorderData e ora di creazione dell’ordineyyyy-MM-ddhh:mm:ss.mmm
MYBANKtranidL’ID della transazione MyBank generata dal sistema di AxeptaString[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.
CAMPODESCRIZIONEFORMATO
level3Info_invoiceNumberNumero fatturaString[32]
level3Info_senderPostalCodeCodice postale mittenteString[8]
level3Info_senderCountryCodeCodice nazionale mittente nel formato ISO 3122 A3String[3]
level3Info_destinationNameRif. spedizione: DestinatarioString[32]
level3Info_destinationStreetRif. spedizione: Dati IndirizzoString[100]
level3Info_destinationStreet2Rif. spedizione: Dati IndirizzoString[100]
level3Info_destinationCityRif. spedizione: CittàString[40]
level3Info_destinationStateRif. spedizione: Stato (se presente)String[32]
level3Info_destinationPostalCodeRif. spedizione: Codice PostaleString[8]
level3Info_destinationCountryCodeRif. spedizione: Codice nazionale nel formato ISO 3122 A3String[3]
level3Info_billingNameRif. fatturazione: DestinatarioString[32]
level3Info_billingStreetRif. fatturazione : Dati IndirizzoString[100]
level3Info_billingStreet2Rif. fatturazione : Dati IndirizzoString[100]
level3Info_billingCityRif.fatturazione: CittàString[ 40]
level3Info_billingStateRif. fatturazione: stato ( se presente)String[32]
level3Info_billingPostalCodeRif. fatturazione: codice postaleString[8]
level3Info_billingCountryCodeRif. fatturazione: Codice nazionale nel formato ISO 3122 A3String[3]
level3Info_freightAmountImporto totale senza spedizioneString[12]
level3Info_taxAmountTasseString[12]
level3Info_vatCodice fiscale / Partita I.V.A.String[64]
level3Info_noteNoteString[255]
level3Info_productLista articoli presenti nell’ordineLivel3InfoProduct

Appendice A – Codici di ritorno

CODICEDESCRIZIONE
IGFS_000TRANSAZIONE OK
IGFS_00051INSTITUTION ID NON PRESENTE.
IGFS_001DESTINATARIO SCONOSCIUTO
IGFS_00155BATCH TRACK ID NON VALIDO.
IGFS_00156BATCH TRACK ID NON UNIVOCO
IGFS_00157STRUMENTO PAGAMENTO NON VALIDO.
IGFS_00158NUMERO CARTA NON NUMERICO
IGFS_00159NUMERO CARTA NON PRESENTE
IGFS_002CARTA SCADUTA
IGFS_00202TENTATIVO HACK RILEVATO
IGFS_00203ACCESSO NON VALIDO:ULITIZZARE METODO POST
IGFS_00253MAXIMUM CREDIT VOLUME EXCEEDED.
IGFS_00254MAXIMUM CARD DEBIT VOLUME EXCEEDED.
IGFS_00255MAXIMUM CARD CREDIT VOLUME EXCEEDED.
IGFS_00256MAXIMUM CARD TRANSACTION COUNT EXCEEDED.
IGFS_00257MAXIMUM TRANSACTION AMOUNT EXCEEDED.
IGFS_00260TRANSACTION DENIED: CREDITS EXCEED CAPTURES
IGFS_00261TRANSACTION DENIED: CAPTURES EXCEED AUTHORIZATIONS
IGFS_003CARTA ERRATA
IGFS_00300INSTITUTION ID NON PRESENTE.
IGFS_00301RISK PROFILE ID NON PRESENTE.
IGFS_00302CODICE VALUTA NON PRESENTE.
IGFS_004CARTA IN BLACK LIST - RITIRARE
IGFS_00451MERCHANT ID NON PRESENTE.
IGFS_00452TERMINAL ID NON PRESENTE.
IGFS_00453TERMINAL ID NON PRESENTE.
IGFS_00454TERMINAL ID NON VALIDO
IGFS_00456TERMINAL ID NON VALIDO
IGFS_005ERRORE DI FORMATO
IGFS_006ERRORE FILE SYSTEM
IGFS_007ERRORE DI COMUNICAZIONE
IGFS_00701IL BATCH NON PROCESSATO
IGFS_00702IL BATCH NON RIAVVIATO
IGFS_00704BATCH ID NON NUMERICO
IGFS_00705BATCH ID NON PRESENTE
IGFS_008AUTORIZZAZIONE NEGATA
IGFS_009RITIRARE CARTA
IGFS_00950DIRECTORY BATCH UPLOAD NON PRESENTE
IGFS_00951DIRECTORY BATCH DOWNLOAD NON PRESENTE
IGFS_00952NOME DIRECTORY ARCHIVIAZIONE BATCH NON PRESENTE
IGFS_010MERCHANT NON ABILITATO
IGFS_01000TRANSAZIONE NEGATA DAL RISCHIO
IGFS_011CONTATTARE ACQUIRER
IGFS_014MERCHANT NON CONVENZIONATO
IGFS_015ACQUIRER NON GESTITO
IGFS_016CARTA IN RANGE NEGATIVO O STRANIERA
IGFS_018CARTA INESISTENTE
IGFS_020CARTA INVALIDA
IGFS_021CODICE MERCHANT ERRATO
IGFS_029DATA SCADENZA ERRATA
IGFS_030FONDI INSUFFICIENTI
IGFS_032IMPORTO NON VALIDO
IGFS_033TRANSAZIONE ORIGINALE NON TROVATA
IGFS_083ERRORE CIFRATURA TRANSAZIONE
IGFS_085CODICE DIVISA ERRATO
IGFS_086MALFUNZIONAMENTO SISTEMA
IGFS_087ACQUIRER NON RAGGIUNGIBILE
IGFS_088MANCATA RISPOSTA DA ACQUIRER
IGFS_091MALFUNZIONAMENTO SISTEMA ACQUIRER
IGFS_092TRANSAZIONE SCONOSCIUTA
IGFS_093CONFERMA GIA' PRESENTE
IGFS_094CREDITO GIA' PRESENTE
IGFS_095STORNO PER NOTIFICA INESISTENTE
IGFS_096STORNO PER AUTORIZZAZIONE INESISTENTE
IGFS_097CONFERMA PER AUTORIZZAZIONE INESISTENTE
IGFS_098IMPORTO SUPERIORE AD IMPORTO AUTORIZZATO
IGFS_10000CARATTERI NON VALIDI
IGFS_101MAC ERRATO
IGFS_102SOSPETTA FRODE
IGFS_104CARTA SOGGETTA A RESTRIZIONI
IGFS_107CONTATTARE ISSUER
IGFS_108CONTATTARE ISSUER:CASO SPECIALE
IGFS_112INSERIRE PIN
IGFS_115FUNZIONE NON SUPPORTATA SU CARTA
IGFS_117PIN ERRATO
IGFS_118CONTO NON TROVATO O NON ABILITATO
IGFS_119OPERAZIONE NON PERMESSA AL TITOLARE
IGFS_121SUPERATO LIMITE IMPORTO
IGFS_122ERRORE SICUREZZA
IGFS_123SUPERATO LIMITE FREQUENZA
IGFS_125ACQUIRER NON GESTITO
IGFS_129SOSPETTA FRODE SU CARTA
IGFS_160CARTA PERSA
IGFS_164DATA ANTEC. A BLOCCO CARTA
IGFS_180DATI ERRATI
IGFS_181DATI SENSIBILI ERRATI
IGFS_189BIN IN RANGE NEGATIVO
IGFS_19213DS:UNABLE TO AUTENTICATE
IGFS_19223DS:AUTENTICATION ERROR
IGFS_19233DS:UNABLE TO VERIFY (VERES=U)
IGFS_200RITIRARE CARTA
IGFS_20000DATI MANCANTI
IGFS_20001CODICE AZIONE NON VALIDO
IGFS_20002SESSIONE SCADUTA
IGFS_20003COOKIES NON ABILITATI
IGFS_20006BRAND NON VALIDO
IGFS_20007STATO ORDINE NON VALIDO
IGFS_20010URL INVIO RISPOSTA NON VALIDO
IGFS_20011URL INVIO ERRORE NON VALIDO
IGFS_20012TRACK ID NON VALIDO
IGFS_20013CODICE LINGUA NON VALIDO
IGFS_20014CAMPO UDF NON VALIDO
IGFS_20015NOME CARTA NON VALIDO
IGFS_20016INDIRIZZO NON VALIDO
IGFS_20017CAP NON VALIDO
IGFS_20018CVV2 NON VALIDO
IGFS_20019TRANSACTION ID. NON VALIDO
IGFS_20020CAMPO USER IDENTIFIER NON VALIDO
IGFS_20021CAMPO API VERSION NON VALIDO
IGFS_20022CAMPO SIGNATURE NON VALIDO
IGFS_20023CAMPO PAYMENT ID NON VALIDO
IGFS_20024CODICE AUTORIZZAZIONE MANCANTE
IGFS_20025CAMPO REFERENCE DATA NON VALIDO
IGFS_20026SHOP ID DUPLICATO
IGFS_20027FORMATO RICHIESTA NON VALIDO
IGFS_20028DATI BATCH MANCANTI
IGFS_20029DATI BATCH NON VALIDI
IGFS_20030DIRECTORY DATI BATCH NON VALIDA
IGFS_20031DATI BATCH DUPLICATI
IGFS_20032NOME BATCH FILE NON VALIDO
IGFS_20033DATI BATCH NON TROVATI
IGFS_20034BATCH TRACK ID NON VALIDO
IGFS_20035ORDERID NON VALIDO
IGFS_20036PAN NON VALIDO
IGFS_20037CVV2 NON VALIDO
IGFS_20038EXPIRE DATE NON VALIDA
IGFS_20040MPI VERIFIED NON VALIDA
IGFS_20041MPI AUTHORIZED NON VALIDA
IGFS_20042MPI CAVV NON VALIDA
IGFS_20043MPI XID DATE NON VALIDA
IGFS_20044CAMPO PAYMENT DESCRIPTION NON VALIDO
IGFS_20045PAYMENT INSTRUMENT TOKEN ID ERRATO
IGFS_20046FREE TEXT ERRATO
IGFS_20048ERRORE PROCESSAMENTO PAYMENT INSTRUMENT TOKEN
IGFS_20049TOPUPID ERRATO
IGFS_20050CODICE POSTALE MITTENTE NON VALIDO
IGFS_20051CODICE POSTALE DESTINATARIO NON VALIDO
IGFS_20052CODICE NAZIONE DESTINATARIO NON VALIDO
IGFS_20053IMPORTO SPEDIZIONE NON VALIDO
IGFS_20056IMPORTO TASSE NON VALIDO
IGFS_20057ELENCO ARTICOLI MANCANTE
IGFS_20058CODICE ARTICOLO NON VALIDO
IGFS_20059DESCRIZIONE ARTICOLO NON VALIDO
IGFS_20060NUMERO NON VALIDO
IGFS_20062IMPORTO ARTICOLO NON VALIDO
IGFS_20065NUMERO MASSIMO PRODOTTI SUPERATO
IGFS_20066CODICE NAZIONE MITTENTE NON VALIDO
IGFS_20067NOME DESTINATARIO NON VALIDO
IGFS_20068INDIRIZZO DESTINATARIO NON VALIDO
IGFS_20069CITTA DESTINATARIO NON VALIDA
IGFS_20070STATO DESTINATARIO NON VALIDO
IGFS_20071CODICE VAT NON VALIDO
IGFS_20072NOME FATTURA NON VALIDO
IGFS_20073INDIRIZZO FATTURA NON VALIDO
IGFS_20074CITTA FATTURA NON VALIDA
IGFS_20075STATO FATTURA NON VALIDO
IGFS_20076CODICE POSTALE FATTURA NON VALIDO
IGFS_20077CODICE NAZIONE FATTURA NON VALIDO
IGFS_20078NUMERO FATTURA NON VALIDO
IGFS_20079NOTE AL VENDITORE NON VALIDE
IGFS_20080PAYPASSDATA ERRATO
IGFS_20081PROMOCODE ERRATO
IGFS_20082ACCNTNAME ERRATO
IGFS_20083AUTHCODE ERRATO
IGFS_20084BUYERNAME ERRATO
IGFS_20085BUYERACCNT ERRATO
IGFS_20086IPBUYER ERRATO
IGFS_20090TRANSAZIONE CANCELLATA DALL'UTENTE
IGFS_20100ERRORE NOTIFICA MERCHANT
IGFS_208CARTA PERSA
IGFS_209CARTA RUBATA
IGFS_400STORNO OK
IGFS_800TERMINALE NON ABILITATO
IGFS_801BANCA SELEZIONATA ERRATA
IGFS_802TENTATIVI PIN ESAURITI
IGFS_803CODICE TERMINALE ERRATO
IGFS_804CHIAVE DISALLINEATA
IGFS_805ERRORE CIFRATURA
IGFS_807TERMINALE CHIUSO
IGFS_808TERMINALE NON CHIUSO
IGFS_809ERRORE SEQUENZA
IGFS_810TERMINALE NON RICONOSCIUTO
IGFS_811TERMINALE BLOCCATO
IGFS_812TERMINALE CHIUSO FORZ.
IGFS_813OPERAZIONE NON PERMESSA
IGFS_814TRANSAZIONE IN CORSO
IGFS_815CARTA BLOCCATA
IGFS_888IN ATTESA DI COMPLETAMENTO
IGFS_90000DATABASE ERROR
IGFS_90005TIMESTAMP ERRATO.
IGFS_902TRANSAZIONE NON VALIDA
IGFS_903REINVIARE TRANSAZIONE
IGFS_907EMITTENTE NON ADERENTE
IGFS_908DESTINAZIONE NON TROVATA
IGFS_909ERRORE DI SISTEMA
IGFS_910SISTEMA ISSUER NON ATTIVO
IGFS_911TIME OUT
IGFS_912ISSUER NON RAGGIUNGIBILE
IGFS_913TRANSAZIONE DUPLICATA
IGFS_934NOTIFICA RIFIUTATA
IGFS_990STRUMENTO PAGAMENTO NON ATTIVO

Appendice B – PayPal codici di ritorno

CODICEDESCRIZIONE
IGFS 888PENDING TRANSACTION,EXECUTE CHECKOUT
IGFS 20050CODICE POSTALE MITTENTE NON VALIDO
IGFS_20051CODICE POSTALE RIF. DI SPEDIZIONE NON VALIDO
IGFS_20052CODICE NAZIONE RIF. 0 1 SPEDIZIONE NON VALIDO
IGFS 20053IMPORTO SPEDIZIONE NON VALIDO
IGFS_20056IMPORTO TASSE NON VALIDO
IGFS_20057VALORE NUMERO ARTICOLI NON PRESENTE
IGFS 20058CODICE ARTICOLO NON VALIDO
IGFS_20059DESCRIZIONE ARTICOLO NON VALIDO
IGFS_20060VALORE NUMERO ARTICOLI NON VALIDO
IGFS 20062IMPORTO ARTICOLO NON VALIDO
IGFS_20065SUPERATO LIMITE NUMERO ARTICOLI
IGFS_20066CODICE NAZIONE MITTENTE NON VALIDO
IGFS 20067RIFERIMENTO SPEDIZIONE NON VALIDO
IGFS_20068INDIRIZZO RIF. SPEDIZIONE NON VALIDO
IGFS_20069CITTA' RIF. SPEDIZIONE NON VALIDO
IGFS_20070STATO RIF. SPEDIZIONE NON VALIDO
IGFS_20071CODICE FISCALE NON VALIDO
IGFS_20072CODICE POSTALE RIF. DI FATTURAZIONE NON VALIDO
IGFS_20073CODICE NAZIONE RIF. FATTURAZIONE NON VALIDO
IGFS_20074RIFERIMENTO FATTURAZIONE NON VALIDO
IGFS_20075INDIRIZZO RIF. FATTURAZIONE NON VALIDO
IGFS_20076CITTA' RIF FATTURAZIONE NON VALIDO
IGFS 20077STATO RIF. FATTURAZIONE NON VALIDO