Plățile cu posesorul cardului prezent

Plățile cu posesorul cardului prezent (Cardholder Present – CHP) se referă la tranzacțiile efectuate cu un terminal Punct de plată (POS). Terminalul poate citi datele de pe card prin:

  • introducerea unui card EMV
  • NFC (Near Field Communication), în cazul cardurilor contactless
  • trecerea prin aparat a unui card cu bandă magnetică
  • introducerea numărului cardului

Compatibilitatea cu toate metodele de mai sus există în API începând cu versiunea 40.

O plată CHP este inițiată de un terminal și trimisă către gateway sub forma unei tranzacții Verify, Authorize, Capture, Pay sau Refund. De exemplu, tranzacțiile autorizate offline de către cipul cardului vor fi trimise exclusiv ca tranzacții de decontare Capture, în timp ce tranzacțiile care necesită autorizația emitentului vor utiliza o tranzacție Authorize online și apoi o tranzacție Capture.

Tranzacțiile CHP pot funcționa împreună cu numeroase alte funcții de pe gateway. Puteți să:

  • creați simboluri pentru carduri,
  • rambursați sume folosind aceeași integrare utilizată pentru tranzacțiile magazinului dvs. sau prin intermediul IU,
  • unificați raportarea pentru comerțul electronic și CHP.

Cerințe preliminare

Your payment service provider și achizitorul dvs. trebuie activeze tranzacțiile cu posesorul cardului prezent.

Câmpuri comune utilizate pentru tranzacțiile CHP

Următoarele câmpuri din API sunt aplicabile tuturor integrărilor cu posesorul cardului prezent de pe gateway.

Câmpuri obligatorii
  • transaction.source=CARD_PRESENT: Dacă nu completați acest câmp, va fi utilizată sursa implicită a tranzacției, configurată în legătura dvs. achizitor de către your payment service provider. [REST][NVP]


  • sourceOfFunds.type=CARD [REST][NVP]

  • order.amount [REST][NVP]

  • order.currency [REST][NVP]

  • număr card: Introducerea numărului de card este obligatorie, însă, în funcție de modul de citire a cardului (introducerea numărului, bandă magnetică sau cip EMV), îl puteți introduce:


  • identificatorul terminalului: Introducerea identificatorului terminalului este obligatorie, însă, în funcție de modul de citire a cardului (introducerea numărului, bandă magnetică sau cip EMV), îl puteți introduce:

Câmpuri opționale

Asigurați-vă că valorile următoarelor câmpuri pentru terminalul POS sunt setate corect, în funcție de modul în care terminalul a generat datele cardului pentru tranzacție. Dacă datele pentru aceste câmpuri sunt disponibile, furnizați-le întotdeauna. Gateway-ul va transmite datele conform cerințelor achizitorului. Dacă achizitorul solicită un câmp care nu este prezent, tranzacția va eșua.

  • posTerminal.address
  • posTerminal.attended: Dacă nu completați acest câmp, gateway-ul va utiliza UNKNOWN_OR_UNSPECIFIED ca valoare implicită
  • posTerminal.authorizationMethod
  • posTerminal.cardHolderActivated: Dacă nu completați acest câmp, gateway-ul va utiliza NOT_CARDHOLDER_ACTIVATED ca valoare implicită
  • posTerminal.inputCapability: Acest câmp este obligatoriu pentru tranzacțiile EMV.
  • posTerminal.location: Acest câmp este obligatoriu pentru tranzacțiile EMV.
  • posTerminal.panEntryMode
  • posTerminal.pinEntryCapability
  • posTerminal.onlineReasonCode: Acest câmp este obligatoriu pentru tranzacțiile cu cip și cele de rezervă (inclusiv stornările) în cazul tuturor tranzacțiilor online.
  • posTerminal.serialNumber
  • posTerminal.mobile.cardInputDevice: Acest câmp se aplică dispozitivelor POS mobile (mPOS) capabile de a accepta atingerea ecranului sau o tastatură fizică pentru introducerea codului PIN. Codurile PIN software ar trebui utilizate doar pentru dispozitive care nu au tastatură hardware pentru introducerea codurilor PIN. Pentru cerințele de integrare mPOS, consultați Integrarea pentru utilizarea mPOS.
  • Referință API Terminal POS [REST][NVP]

  • order.gratuityAmount: Completați acest câmp dacă plata include o gratuitate.
    [REST][NVP]

  • order.cashbackAmount: Completați acest câmp dacă plata include o sumă restituită.
    [REST][NVP]

  • order.cashAdvance: Completați acest câmp dacă plata include un avans în numerar.
    [REST][NVP]

Procesarea unei tranzacții EMV

Dacă datele cardului au fost citite de pe un cip de card (numai cardurile EMV),

  • Solicitați terminalului aceste etichete EMV (etichete acceptate de gateway).
  • Furnizați etichetele returnate în câmpul sourceOfFunds.provided.card.emvRequest, ca obiecte JSON în protocolul REST sau sub forma unei colecții de câmpuri în protocolul NVP (nu este necesar ca terminalul să furnizeze toate etichetele EMV acceptate).
    Valorile etichetelor EMV trebuie să fie formatate exact așa cum sunt returnate de către terminal — valorile binare vor fi exprimate în formatul hexazecimal.
  • Completați câmpurile obligatorii.
  • Completați câmpurile opționale, dacă este necesar.

sourceOfFunds.provided.card.emvRequest [REST][NVP]

Unele dintre etichetele EMV acceptate corespund conceptelor esențiale de plată, cum ar fi numărul contului principal. Aceste concepte apar, de asemenea, sub forma unor câmpuri de solicitare din API, precum sourceOfFunds.provided.card.number. Documentația de referință API pentru aceste câmpuri corespunzătoare de solicitare API prezintă legăturile dintre acestea în descriere. De exemplu, descrierea pentru sourceOfFunds.provided.card.number conține textul „Acest câmp corespunde etichetei EMV 5A”.

Dacă furnizați date sub forma etichetelor EMV, nu este necesar să le furnizați din nou sub forma unui câmp de solicitare API. Gateway-ul completează câmpurile corespunzătoare de solicitare API cu valorile furnizate în etichetele EMV dacă există, și utilizează aceste valori în toate procesele interne, mesajele către achizitor și răspunsurile la tranzacții. De exemplu, dacă trimiteți sourceOfFunds.provided.card.emvRequest.9F1C cu valoarea „Lane_03”, atunci câmpul posTerminal.lane cu valoarea „Lane_03” va fi trimis achizitorului și returnat în răspunsul la tranzacție.

Puteți furniza etichete EMV în locul câmpurilor de solicitare API.

Dacă este necesar, puteți furniza atât etichetele EMV, cât și câmpurile corespunzătoare de solicitare API în solicitarea de tranzacție. Consultați Utilizarea avansată: Datele tranzacțiilor din etichetele EMV și câmpurile solicitărilor API.

Exemplu de solicitare

Iată un exemplu de solicitare EMV în REST pentru o tranzacție de decontare independentă, pentru care autorizarea a avut loc offline, la terminal.

URL https://egenius.unicredit.ro/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{transactionid}
Metoda HTTP PUT
{
    "apiOperation": "CAPTURE",
    "transaction": {
        "currency": "EUR",
        "amount": "10.99",
        "source": "CARD_PRESENT"
    },
    "sourceOfFunds": {
        "type": "CARD",
        "provided": {
            "card": {
                "number": "5457210089020012",
                "expiry": {
                    "month": "1",
                    "year": "39"
                },
                "emvRequest": {
                    "82": "0000",
                    "95": "0000000000",
                    "9F02": "000000001099",
                    "9A": "161021",
                    "5F2A": "840",
                    "9F1A": "840",
                    "9F10": "06011103A000000A0100000000000BB0ABAD",
                    "9F34": "1E0300",
                    "9F36": "0002",
                    "9C": "00",
                    "9F26": "D1F722D47FCA8273",
                    "9F27": "40",
                    "9F37": "2A4E1690",
                    "9F33": "E0B8C8"
                }
            }
        }
    },
    "posTerminal": {
        "inputCapability": "CONTACTLESS_CHIP",
        "panEntryMode": "CHIP",
        "pinEntryCapability": "PIN_SUPPORTED",
        "location": "MERCHANT_TERMINAL_ON_PREMISES",
        "lane": "Lane_03",
        "attended": "ATTENDED",
		"serialNumber":"123456789",
		"onlineReasonCode":"FORCED_BY_MERCHANT",
		"cardPresenceCapability":"CARD_PRESENT",
		"authorizationMethod":"OFFLINE",
		"address":
		{
			"country":"IRL",
			"city":"Dublin"
		}
    }
}
Exemplu de răspuns
{
  "gatewayEntryPoint": "WEB_SERVICES_API",
  "merchant": "TESTSMOKE-RETAIL",
  "order": {
    "amount": 10.99,
    "creationTime": "2017-06-06T09:42:54.280Z",
    "currency": "EUR",
    "id": "sa-dfc1b030-4520-48ec-a7e0-889999d7e4ab",
    "status": "CAPTURED",
    "totalAuthorizedAmount": 10.99,
    "totalCapturedAmount": 10.99,
    "totalRefundedAmount": 0
  },
  "posTerminal": {
    "address": {
      "city": "Dublin",
      "country": "IRL"
    },
    "attended": "ATTENDED",
    "authorizationMethod": "OFFLINE",
    "cardPresenceCapability": "CARD_PRESENT",
    "cardholderActivated": "NOT_CARDHOLDER_ACTIVATED",
    "inputCapability": "CONTACTLESS_CHIP",
    "lane": "Lane_03",
    "location": "MERCHANT_TERMINAL_ON_PREMISES",
    "onlineReasonCode": "FORCED_BY_MERCHANT",
    "panEntryMode": "CHIP",
    "pinEntryCapability": "PIN_SUPPORTED",
    "serialNumber": "123456789"
  },
  "response": {
    "gatewayCode": "APPROVED"
  },
  "result": "SUCCESS",
  "sourceOfFunds": {
    "provided": {
      "card": {
        "brand": "MASTERCARD",
        "emvRequest": {
          "82": "0000",
          "95": "0000000000",
          "5F2A": "840",
          "9A": "161021",
          "9C": "00",
          "9F02": "000000001099",
          "9F10": "06011103A000000A0100000000000BB0ABAD",
          "9F1A": "840",
          "9F26": "D1F722D47FCA8273",
          "9F27": "40",
          "9F33": "E0B8C8",
          "9F34": "1E0300",
          "9F36": "0002",
          "9F37": "2A4E1690"
        },
        "emvResponse": {
          "4D3E": "456",
          "5A2F": "123"
        },
        "expiry": {
          "month": "1",
          "year": "39"
        },
        "fundingMethod": "DEBIT",
        "issuer": "CAPITAL ONE BANK (CANADA BRANCH)",
        "number": "545721xxxxxx0012",
        "scheme": "MASTERCARD"
      }
    },
    "type": "CARD"
  },
  "timeOfRecord": "2017-06-06T09:42:54.280Z",
  "transaction": {
    "acquirer": {
      "batch": 1,
      "id": "FOOBANK",
      "merchantId": "11223344"
    },
    "amount": 10.99,
    "currency": "EUR",
    "frequency": "SINGLE",
    "id": "1",
    "receipt": "1706063974",
    "source": "CARD_PRESENT",
    "terminal": "0001",
    "type": "CAPTURE"
  },
  "version": "43"
}
Etichetele EMV acceptate

Iată o listă a etichetelor EMV acceptate de gateway. Dacă oricare dintre acestea sunt returnate de terminal, includeți-le în câmpul sourceOfFunds.provided.card.emvRequest.

Gateway-ul acceptă numai etichetele EMV din lista de etichete EMV acceptate — solicitările care includ orice alte etichete sunt respinse.
Etichetă EMV
Nume
Obligatoriu
4F Nume identificator aplicație (AID) -
56 Pista 1 -
57 Date echivalente pista 2 -
5A Număr cont
principal (PAN) aplicație
-
5F24 Dată expirare aplicație -
5F25 Dată intrare în vigoare aplicație -
5F28 Cod țară emitent -
5F2A Cod monedă tranzacție -
5F34 Număr secvențial număr
cont principal (PAN) aplicație
-
82 Profil de procesare aplicație (AIP) Da
84 Nume fișier dedicat -
87 Indicator prioritate aplicație -
95 Rezultat verificare terminal (TVR) Da
9A Dată tranzacție Da
9B Informații stare tranzacție -
9C Tip tranzacție Da
9F02 Valoare autorizată Da
9F03 Valoare restituită -
9F06 Identificator aplicație (AID) – terminal -
9F07 Control utilizare aplicație -
9F08 Număr versiune aplicație – ICC -
9F09 Număr versiune aplicație – Terminal -
9F0D Cod acțiune emitent – Implicit -
9F0E Cod acțiune emitent – Respingere -
9F0F Cod acțiune emitent – Online -
9F10 Date aplicație emitent (IAD) Da
9F1A Cod țară terminal Da
9F1C Identificare terminal -
9F1E Număr de serie dispozitiv de interfață (IFD) -
9F21 Oră tranzacție -
9F26 Criptogramă aplicație (AC) Da
9F27 Date informații criptogramă (CID) Da
9F33 Capacități terminal -
9F34 Rezultate metodă de verificare posesor de card (CVM)= Da
9F35 Tip terminal -
9F36 Contor tranzacții aplicație Da
9F37 Număr imprevizibil Da
9F39 Mod de introducere punct de servicii (POS) -
9F40 Capacități suplimentare terminal -
9F41 Contor de ordine tranzacții -
9F49 Listă obiecte date autentificare date dinamice (DDOL) -
9F53 Cod de categorie tranzacție -
9F5A EMV (Kernel 3): Identificator program aplicație (ID program)
EMV (Kernel 4): Identificator produs calitate de membru
-
9F5B EMV (Kernel 3): Rezultate script emitent
EMV (Kernel 2): DSDOL
EMV (Kernel 4): Număr calitate de membru produs
-
9F66 EMV (Kernel 2): PUNATC(Track2)
EMV
(Kernel 3): Calificatori tranzacție terminal (TTQ)
-
9F6E Indicator format -
9F7C Date exclusive client (CED) -
Utilizarea avansată: Datele tranzacțiilor din etichetele EMV și câmpurile solicitărilor API

Dacă furnizați atât etichetele EMV, cât și câmpurile corespunzătoare de solicitare API în solicitarea de tranzacție, gateway-ul va utiliza valoarea din câmpul corespunzător de solicitare API. De exemplu, dacă trimiteți sourceOfFunds.provided.card.emvRequest.9F1C cu valoarea „Lane_03” și posTerminal.lane cu valoarea „Lane_04”, atunci câmpul posTerminal.lane cu valoarea „Lane_04” va fi trimis achizitorului și returnat în răspunsul la tranzacție. Acest lucru poate fi util dacă doriți să suprascrieți etichetele EMV și valorile de control pentru fiecare câmp în parte. Rețineți că un astfel de mod de utilizare este rar și, prin urmare, trebuie luat în calcul numai dacă integrarea dvs. impune acest lucru.

Etichetele EMV acceptate și câmpurile corespunzătoare de solicitare API

Acest tabel prezintă etichetele EMV pentru care gateway-ul completează câmpurile corespunzătoare de solicitare API cu valorile furnizate în etichetele EMV.

Etichetă EMV
Nume etichetă EMV
Câmp corespunzător solicitare API
56 Pista 1 sourceOfFunds.provided.card.track1
57 Date echivalente pista 2 sourceOfFunds.provided.card.track2
5A Număr cont principal (PAN) aplicație sourceOfFunds.provided.card.number
5F24 Dată expirare aplicație sourceOfFunds.provided.card.expiry.year
sourceOfFunds.provided.card.expiry.month
5F34 Număr de serie PAN sourceOfFunds.provided.card.sequenceNumber
9C Acont numerar order.cashAdvance
9F03 Valoare restituită order.cashbackAmount
9F1A Cod țară terminal posTerminal.address.country
9F1C Identificare terminal posTerminal.lane
9F1E Număr de serie dispozitiv de interfață posTerminal.serialNumber
9F33 Capacități terminal posTerminal.inputCapability
posTerminal.pinEntryCapability
9F35 Tip terminal posTerminal.attended
posTerminal.cardholderActivated
Răspuns de tranzacție EMV

Gateway-ul returnează câmpul sourceOfFunds.provided.card.emvResponse în răspunsul Retrieve Order și Retrieve Transaction. Acest câmp conține date generate de emitent, pe care cardul/dispozitivul le poate utiliza pentru verificare și pentru finalizarea sau respingerea tranzacției. Acesta poate conține, de asemenea, etichete EMV suplimentare de la emitent, inclusiv etichetele preluate din solicitare.

Tabelul de mai jos prezintă câteva etichete EMV care pot fi returnate într-un răspuns de autorizare online.

Etichetă EMV Nume
8A Cod răspuns de autorizare
89 Cod de autorizare
91 Date de autentificare emitent
71 Șablon 1 script emitent
72 Șablon 2 script emitent

Câmpul sourceOfFunds.provided.card.emvRequest inclus în solicitare este preluat în răspuns, în timp ce etichetele EMV identificate ca PCI sensibile sunt excluse.

Anularea unei tranzacții EMV

Achizitorul dvs. poate solicita elemente de date EMV suplimentare atunci când invalidează o tranzacție EMV. De exemplu, poate fi necesară eticheta EMV DF01 (Rezultate script emitent). Pentru detalii privind cerințele, contactați achizitorul.

Procesați o tranzacție pe bază de bandă magnetică

Dacă datele pistei cardului au fost citite de pe banda magnetică a cardului,

  • Furnizați datele pistei 1 în sourceOfFunds.provided.card.track1 sau datele pistei 2 în câmpul sourceOfFunds.provided.card.track2. Dacă la terminal sunt disponibile atât pista 1, cât și pista 2, atunci furnizați-le pe ambele în solicitarea de tranzacție.
  • Completați câmpurile obligatorii.
  • Completați câmpurile opționale, dacă este necesar.

sourceOfFunds.provided.card.track1 [REST][NVP]

sourceOfFunds.provided.card.track2 [REST][NVP]

Datele de pe banda magnetică a cardului trebuie să conțină caracterele santinelă corecte de început și sfârșit și caracterul de final pentru verificare longitudinală a redundanței (LRC). Datele de pe banda magnetică 3 a cardului nu sunt acceptate.
Exemplu de solicitare

Iată un exemplu de tranzacție de autorizare online pe baza datelor benzii magnetice.

URL https://egenius.unicredit.ro/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{transactionid}
Metoda HTTP PUT
{
  "apiOperation": "AUTHORIZE",
  "order": {
    "amount": 80,
    "currency": "AUD"
  },
  "transaction": {
    "source": "CARD_PRESENT",
    "frequency": "SINGLE"
  },
  "sourceOfFunds": {
    "type": "CARD",
    "provided": {
      "card": {
        "number": "5457210089020012",
        "sequenceNumber": "015",
        "expiry": {
          "year": "39",
          "month": "01"
        },
        "track2": ";5123456789012346=17051019681143384001?",
        "track1": "%B5123456789012346^MR JOHN R SMITH           ^17051019681143300001  840      ?;"
      }
    }
  },
  "posTerminal": {
    "lane": "AdamLane",
    "panEntryMode": "SWIPE",
    "pinEntryCapability": "PIN_NOT_SUPPORTED",
    "attended": "UNATTENDED",
    "cardholderActivated": "SELF_SERVICE_TERMINAL",
    "inputCapability": "MAGNETIC_STRIPE",
    "location": "MERCHANT_TERMINAL_OFF_PREMISES"
   }
}
Exemplu de răspuns
{
    "authorizationResponse": {
        "posData": "1605S0100130",
        "transactionIdentifier": "AmexTidTest"
    },
    "gatewayEntryPoint": "WEB_SERVICES_API",
    "merchant": "TESTSMOKE-RETAIL",
    "order": {
        "amount": 80,
        "creationTime": "2017-05-31T07:49:46.351Z",
        "currency": "AUD",
        "id": "sa-e229682a-2163-47cf-b080-fb60dd148192",
        "status": "AUTHORIZED",
        "totalAuthorizedAmount": 80,
        "totalCapturedAmount": 0,
        "totalRefundedAmount": 0
    },
    "posTerminal": {
        "attended": "UNATTENDED",
        "cardholderActivated": "SELF_SERVICE_TERMINAL",
        "inputCapability": "MAGNETIC_STRIPE",
        "lane": "AdamLane",
        "location": "MERCHANT_TERMINAL_OFF_PREMISES",
        "panEntryMode": "SWIPE",
        "pinEntryCapability": "PIN_NOT_SUPPORTED"
    },
    "response": {
        "acquirerCode": "00",
        "gatewayCode": "APPROVED"
    },
    "result": "SUCCESS",
    "sourceOfFunds": {
        "provided": {
            "card": {
                "brand": "MASTERCARD",
                "expiry": {
                    "month": "1",
                    "year": "39"
                },
                "fundingMethod": "DEBIT",
                "issuer": "CAPITAL ONE BANK (CANADA BRANCH)",
                "number": "545721xxxxxx0012",
                "scheme": "MASTERCARD",
                "sequenceNumber": "015",
                "trackDataProvided": true
            }
        },
        "type": "CARD"
    },
    "timeOfRecord": "2017-05-31T07:49:46.351Z",
    "transaction": {
        "acquirer": {
            "batch": 1,
            "id": "SYSTEST_ACQ1",
            "merchantId": "12345678"
        },
        "amount": 80,
        "authorizationCode": "000001",
        "currency": "AUD",
        "frequency": "SINGLE",
        "id": "1",
        "receipt": "1705313",
        "source": "CARD_PRESENT",
        "terminal": "0006",
        "type": "AUTHORIZATION"
    },
    "version": "43"
}

Procesarea unei tranzacții introduse

Dacă numărul cardului a fost introdus manual pe tastatura terminalului,

sourceOfFunds.provided.card.number[REST][NVP]

Exemplu de solicitare

Iată un exemplu de tranzacție de autorizare online pe baza unui număr de card introdus manual.

URL https://egenius.unicredit.ro/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{transactionid}
Metoda HTTP PUT
{
  "posTerminal": {
    "serialNumber": "13130PP800781435",
    "cardholderActivated": "NOT_CARDHOLDER_ACTIVATED",
    "lane": "S2_Lane",
    "panEntryMode": "KEYED",
    "pinEntryCapability": "UNKNOWN",
    "attended": "ATTENDED",
    "inputCapability": "KEY_ENTRY",
    "location": "MERCHANT_TERMINAL_ON_PREMISES"
  },
  "apiOperation": "AUTHORIZE",
  "sourceOfFunds": {
    "type": "CARD",
    "provided": {
      "card": {
        "number": "5457210089020012",
        "sequenceNumber": "000",
        "expiry": {
          "year": "39",
          "month": "01"
        }
      }
    }
  },
  "order": {
    "amount": "100.00",
    "currency": "EUR"
  }, 
    "transaction": {
    "source": "CARD_PRESENT",
    "frequency": "SINGLE"
  }
}
Exemplu de răspuns
{
  "gatewayEntryPoint": "WEB_SERVICES_API",
  "merchant": "TESTSMOKE-RETAIL",
  "order": {
    "amount": 100,
    "creationTime": "2017-05-31T08:59:47.194Z",
    "currency": "EUR",
    "id": "sa-529e784a-e11d-474d-8012-c0790531bb0f",
    "status": "AUTHORIZED",
    "totalAuthorizedAmount": 100,
    "totalCapturedAmount": 0,
    "totalRefundedAmount": 0
  },
  "posTerminal": {
    "attended": "ATTENDED",
    "cardholderActivated": "NOT_CARDHOLDER_ACTIVATED",
    "inputCapability": "KEY_ENTRY",
    "lane": "S2_Lane",
    "location": "MERCHANT_TERMINAL_ON_PREMISES",
    "panEntryMode": "KEYED",
    "pinEntryCapability": "UNKNOWN",
    "serialNumber": "13130PP800781435"
  },
  "response": {
    "gatewayCode": "APPROVED"
  },
  "result": "SUCCESS",
  "sourceOfFunds": {
    "provided": {
      "card": {
        "brand": "MASTERCARD",
        "expiry": {
          "month": "1",
          "year": "39"
        },
        "fundingMethod": "DEBIT",
        "issuer": "CAPITAL ONE BANK (CANADA BRANCH)",
        "number": "545721xxxxxx0012",
        "scheme": "MASTERCARD",
        "sequenceNumber": "000"
      }
    },
    "type": "CARD"
  },
  "timeOfRecord": "2017-05-31T08:59:47.194Z",
  "transaction": {
    "acquirer": {
      "batch": 1,
      "id": "FOOBANK",
      "merchantId": "11223344"
    },
    "amount": 100,
    "authorizationCode": "471223",
    "currency": "EUR",
    "frequency": "SINGLE",
    "id": "1",
    "receipt": "170531475",
    "source": "CARD_PRESENT",
    "terminal": "0001",
    "type": "AUTHORIZATION"
  },
  "version": "43"
}

Procesarea unei tranzacții Point-to-Point Encryption (P2PE)

P2PE este un standard stabilit de PCI Security Standards Council. În cazul P2PE, datele sensibile ale cardului sunt criptate pe terminal imediat ce sunt citite datele de pe card. Acest lucru asigură un nivel maxim de securitate pentru tranzacțiile cu posesorul cardului prezent și vă reduce obligațiile de conformitate cu PCI, deoarece nu este necesar să procesați date sensibile.

eGenius Platform acceptă P2PE folosind DUKPT (Derived Unique Key Per Transaction – cheie unică derivată per tranzacție) începând cu API versiunea 40, numai pentru Verifone, în regiunea UE.

Pentru a procesa o tranzacție P2PE:

  • Furnizați datele DUKPT P2PE de la terminal în următoarele câmpuri:
    • sourceOfFunds.provided.card.p2pe.keySerialNumber: Trebuie să introduceți numărul de serie al cheii DUKPT, furnizat de terminal.
    • sourceOfFunds.provided.card.p2pe.payload: Dacă acest câmp este completat, sourceOfFunds.provided.card.number nu este obligatoriu. Gateway-ul va extrage toate detaliile relevante ale cardului din datele utile furnizate.
    • posTerminal.serialNumber:
    • sourceOfFunds.provided.card.p2pe.cardBin
    • sourceOfFunds.provided.card.p2pe.encryptionState: Dacă nu completați acest câmp, gateway-ul va utiliza VALID ca valoare implicită
    • sourceOfFunds.provided.card.p2pe.initializationVector: Acest câmp poate fi omis dacă terminalul nu utilizează un vector de inițializare pentru a iniția criptarea.
  • Completați câmpurile obligatorii.
  • Completați câmpurile opționale, dacă este necesar.

Referință API P2PE [REST][NVP]

Tabelul de mai jos rezumă limitările câmpurilor pentru grupul de parametri sourceOfFunds.provided.card.p2pe.

Dacă câmpul atunci gateway-ul...
sourceOfFunds.provided.card.p2pe. initializationVector
sourceOfFunds.provided.card.p2pe. keySerialNumber
sourceOfFunds.provided.card.p2pe. payload
este completat este completat nu este completat respinge solicitarea de tranzacție.
este completat este completat în clar, înainte sau după decriptare este completat returnează o eroare și generează un element în jurnalul de securitate.

Răspuns de tranzacție

Câmpul sourceOfFunds.provided.card.encryption returnează DUKPT (începând cu API versiunea 43) în răspunsul de tranzacție pentru a indica criptarea datelor de pe card. Câmpurile din grupul de parametri sourceOfFunds.provided.card.p2pe nu sunt returnate în răspuns.

Integrare pentru utilizare PIN online

PIN-ul online introdus de posesorul cardului este criptat la sursă, pe dispozitivul de introducere a PIN-ului. eGenius Platform acceptă datele PIN online criptate prin DUKPT (Derived Unique Key Per Transaction – cheie unică derivată per tranzacție) începând cu API versiunea 45.

  • Furnizați datele PIN criptate prin DUKPT de la terminal în următoarele câmpuri:
    • sourceOfFunds.provided.card.pin.payload
    • sourceOfFunds.provided.card.pin.keySerialNumber
    • posTerminal.pinLengthCapability
    • sourceOfFunds.provided.card.pin.encryptionState

    Referință API PIN online [REST][NVP]

  • Completați câmpurile obligatorii.
  • Completați câmpurile opționale, dacă este necesar.

Integrarea pentru utilizarea mPOS

Gateway-ul acceptă plățile pe dispozitive POS mobile (mPOS) începând cu API v56. Pentru a activa funcționalitatea, furnizați următoarele elemente în tranzacția Verify, Authorize, Capture, Pay sau Refund:

  • posTerminal.cardholderActivated=MPOS_ACCEPTANCE_DEVICE
  • Furnizați o valoare a cititorului de carduri în posTerminal.mobile.cardInputDevice

    • BUILT_IN: Telefon mobil sau tabletă cu un singur cititor contactless încorporat. În acest caz, posTerminal.pinEntryCapability trebuie setată la SOFTWARE_ONLINE_PIN_ONLY, altfel gateway-ul respinge tranzacția.
    • INTEGRATED_DONGLE: Terminal mobil dedicat cu un cititor de carduri integrat. În acest caz, posTerminal.pinEntryCapability trebuie setată la PIN_SUPPORTED sau OFFLINE_PIN_ONLY, altfel gateway-ul respinge tranzacția.
    • SEPARATE_DONGLE: Dispozitiv nou sau terminal mobil dedicat cu un cititor de carduri separat. În acest caz, posTerminal.pinEntryCapability trebuie setată la PIN_SUPPORTED sau OFFLINE_PIN_ONLY, altfel gateway-ul respinge tranzacția.

    Referință API mPOS [REST][NVP]

  • Completați câmpurile obligatorii.
  • Completați câmpurile opționale, dacă este necesar.

Răspuns de tranzacție

Autentificarea cu PIN poate eșua dacă plătitorul introduce un PIN nevalid, depășește numărul permis de încercări de introducere a PIN-ului sau omite introducerea PIN-ului atunci când PIN-ul este necesar pentru finalizarea tranzacției.

În aceste scenarii, în care autorizarea eșuează din cauza unei erori de autentificare cu PIN, gateway-ul va returna anumite coduri de răspuns pentru autentificare. Puteți reutiliza același ID de comandă la tranzacția următoare.

Testare integrare prezență posesor de card

Vă puteți testa integrarea folosind cardurile de testare specifice achizitorului dvs.

Copyright © 2023 UniCredit Bank