Acreditare înregistrată, tranzacții inițiate de posesorul cardului și de comerciant

Această pagină descrie modul de trimitere către gateway a tranzacțiilor inițiate de posesorul cardului și de comerciant pentru respectarea standardelor schemei de carduri în vederea procesării tranzacțiilor respective.

Puteți avea o integrare în care colectați detaliile de plată de la plătitori, le stocați și apoi le utilizați pentru a procesa plățile viitoare pentru plătitori. Dacă acesta este cazul, trebuie să trimiteți gateway-ului, în tranzacția inițială, informația că urmează să stocați detaliile de plată și intenționați să le utilizați în viitor. Trebuie, de asemenea, să furnizați aceste informații gateway-ului atunci când utilizați detaliile de plată stocate pentru a efectua plăți ulterioare, fie inițiate de către plătitor (tranzacție inițiată de posesorul cardului), fie de către dvs. în calitate de comerciant, ca urmare a acordului de plată cu plătitorul (tranzacție inițiată de comerciant).

Acest lucru are rolul de a asigura respectarea standardelor schemei de carduri pentru procesarea tranzacțiilor inițiate de posesorul cardului și de comerciant pe baza detaliilor de plată stocate (aceste standarde poartă și numele de cerințe privind acreditările înregistrate). Trimiterea către gateway a informațiilor de identificare a detaliilor de plată stocate, a tranzacțiilor inițiate de posesorul cardului și a celor inițiate de comerciant poate asigura:

  • o vizibilitate mai bună pentru emitenți a nivelurilor de risc ale tranzacțiilor
  • rate mai înalte de aprobare a autorizărilor și de vânzări finalizate și
  • o experiență îmbunătățită a plătitorului.
Puteți alege să stocați detaliile de plată în propria dvs. aplicație sau puteți utiliza crearea de simboluri pe gateway sau simbolurile schemei de carduri.

Gateway-ul acceptă următoarele plăți care utilizează detaliile de plată stocate începând din API WS v74:

Acreditare înregistrată cu 3-D Secure

Puteți utiliza 3-D Secure cu plățile inițiate de posesorul cardului. Pentru mai multe informații, citiți detaliile de mai jos.

Efectuarea plăților inițiate de posesorul cardului

O tranzacție inițiată de posesorul cardului este o tranzacție efectuată cu participarea activă a plătitorului. De exemplu, o tranzacție de comerț electronic sau efectuată în urma unei comenzi poștale sau telefonice.

Pentru a indica faptul că tranzacția a fost inițiată de plătitor, trebuie să setați transaction.source la INTERNET/MOTO/MAIL_ORDER/TELEPHONE_ORDER/VOICE_RESPONSE/CALL_CENTER. În cadrul acestor instrucțiuni, vom utiliza o plată prin internet (transaction.source = INTERNET) pentru a ilustra o tranzacție inițiată de posesorul cardului; puteți utiliza, însă, oricare dintre celelalte valori permise.

O tranzacție inițiată de posesorul cardului poate reprezenta o plată unică, pentru care detaliile de plată furnizate de plătitor nu vor fi, în mod normal, păstrate. Puteți, însă, încheia un acord cu plătitorul pentru a stoca detaliile de plată ale acestuia pentru utilizare ulterioară (în general, în cadrul unui proces de înscriere a clientului sau de creare a unui cont), efectuând ulterior tranzacții inițiate de posesorul cardului pe baza detaliilor de plată stocate.

Dacă plătitorul acceptă, în timpul unei interacțiuni cu acesta, stocarea detaliilor sale de plată în vederea utilizării ulterioare, trebuie să completați următoarele câmpuri în tranzacția inițială:

  • sourceOfFunds.type=CARD sau SCHEME_TOKEN
  • câmpurile sourceOfFunds.provided.card.* sau sourceOfFunds.token
  • transaction.source=INTERNET, and
  • sourceOfFunds.provided.card.storedOnFile:TO_BE_STORED.

Pentru plățile ulterioare inițiate de plătitor (nu de către dvs.) și dacă sunt utilizate detaliile de plată stocate ale plătitorului, trebuie să completați:

  • sourceOfFunds.type=CARD sau SCHEME_TOKEN
  • câmpurile sourceOfFunds.provided.card.* sau sourceOfFunds.token
  • transaction.source=INTERNET, and
  • sourceOfFunds.provided.card.storedOnFile:STORED.

Pentru informații privind modul în care trebuie să indicați gateway-ului dacă detaliile de plată sunt stocate, nestocate sau intenționați să le stocați, consultați Întrebările frecvente.

Efectuarea plăților inițiate de comerciant

O tranzacție inițiată de comerciant este una efectuată pe baza detaliilor de plată stocate, însă fără participarea activă a plătitorului. Puteți efectua tranzacții inițiate de comerciant dacă oferiți:

Acord cazuri de utilizare a datelor

  • Plată periodică – produse sau servicii care necesită efectuarea unei plăți din contul plătitorului pe baza unui orar predefinit – de exemplu o plată periodică ulterioară pentru un abonament la o publicație sau la o sală de fitness.
  • Rate – plătitorul plătește pentru o singură achiziție în mai multe rate.
  • Adăugare fonduri – Oferiți plătitorului un serviciu de taxare la cerere pentru servicii. De exemplu, reîncărcări de cont atunci când suma disponibilă scade sub un prag definit.

În astfel de cazuri, va fi necesar să încheiați un acord cu plătitorul în privința acestor servicii. Plătitorul trebuie să fie de acord ca dvs. să îi stocați detaliile de plată în acest scop și trebuie să vă permită să inițiați ulterior plăți pe baza detaliilor de plată stocate, fără participarea activă a acestuia.

Cazuri de utilizare plăți pentru practici industriale

  • Încărcare aferentă/întârziată – O taxă suplimentară de cont după ce plata serviciilor inițiale a fost deja procesată. De exemplu, o taxă suplimentară pentru minibar după ce deținătorul cardului a plecat dintr-un hotel.
  • Penalizare pentru neprezentare – O penalizare percepută plătitorului conform politicii de anulare a comerciantului. De exemplu, anularea unei rezervări de către un deținător de card fără a furniza o notificare prealabilă adecvată comerciantului.
  • Expediere parțială – O expediere în care comerciantul decide să expedieze mărfurile din aceeași comandă în mai multe transporturi din diverse motive, cum ar fi indisponibilitatea bunurilor, implicarea mai multor furnizori pentru mărfuri și așa mai departe. De exemplu, furnizorul nu are la dispoziție toate bunurile sau logistica.

Caz de utilizare retrimitere plată

  • Retrimitere – O încercare anterioară de a obține o autorizare pentru o tranzacție este refuzată, dar răspunsul emitentului nu interzice comerciantului să încerce din nou mai târziu, chiar și atunci când plătitorul nu mai este prezent. De exemplu, Fonduri insuficiente.
Cazurile de utilizare pentru plată practici industrială și retrimitere inițiate de comerciant funcționează numai pentru cardurile cu schema de marcă Mastercard.

Detaliile acordului

Atunci când încheiați un acord cu plătitorul, prin care acesta vă permite să efectuați ulterior plăți inițiate de comerciant, este necesar să includeți, următoarele detalii ale acordului în tranzacția inițială din serie, respectiv în tranzacția inițiată de posesorul cardului:

  • agreement.id: Specifică o valoare unică, generată de către dvs. pentru a identifica un acord de plată încheiat cu plătitorul. Este necesar, de asemenea, să includeți această valoare în tranzacțiile ulterioare inițiate de comerciant, pentru a indica apartenența plăților la o serie. Acest lucru are rolul de a asigura respectarea cerințelor schemei de carduri, ID-ul acordului având funcția de identificator prin care prima tranzacție, inițiată de posesorul cardului, este asociată cu tranzacțiile ulterioare, inițiate de comerciant.
  • agreement.type: Indică dacă a fost stabilit acordul comercial încheiat cu plătitorul. Acesta trebuie furnizat numai dacă încheiați un acord cu plătitorul în cadrul tranzacției inițiate de posesorul cardului.
ID-ul și tipul acordului nu trebuie trimise dacă intenționați să procesați numai tranzacții inițiate de posesorul cardului pe baza detaliilor de plată stocate.

Referință API detalii acord [REST][NVP]

Detalii plată practici industriale și detalii retrimitere

Atunci când încheiați un acord cu plătitorul care permite unui comerciant să trimită ulterior plăți inițiate de comerciant pentru practicile industriale, comerciantul trebuie să furnizeze următoarele detalii:

  • order.industryPracticePaymentReason - Acest câmp este utilizat pentru a clasifica plățile inițiate de comerciant care sunt transmise în contextul anumitor practici din industrie. Utilizați acest câmp pentru a indica motivul plății pentru practici industriale. De exemplu, DELAYED_CHARGE, NO_SHOW_PENALTY sau PARTIAL_SHIPMENT.
  • sourceofFunds.provided.card.storedOnFiles = STORED- Acest câmp indică consimțământul în cazul în care comerciantul trebuie să fi obținut consimțământul plătitorului înainte de a trimite tranzacții cu practici industriale.
  • transaction.resubmission- Acest câmp indică faptul că această tranzacție inițiată de comerciant este o retrimitere pentru o autorizare anterioară care a eșuat din cauza fondurilor insuficiente. Operațiunile care trebuie retrimise trebuie să fie doar Authorize sau Pay.
  • referenceOrderId - Acest câmp indică referința la o comandă transmisă anterior de către dvs. către gateway. Este aplicabil în următoarele scenarii la depunerea tranzacțiilor de plată:
    • plata unei practici industriale: aceasta este referința la tranzacția inițială inițiată de titularul cardului.
    • o tranzacție de retrimitere: aceasta este referința la tranzacția inițiată de comerciant care este retrimisă.
Cazurile de utilizare pentru plată practici industrială și retrimitere inițiate de comerciant funcționează numai pentru cardurile cu schema de marcă Mastercard.

Referință API detalii plată pratici industriale și detalii retrimitere [REST][NVP]

Sursa tranzacției

Atunci când trimiteți plăți, trebuie să faceți distincția între prima tranzacție din serie, respectiv tranzacția inițiată de posesorul cardului, și orice plăți ulterioare inițiate de comerciant în aceeași serie. Puteți face acest lucru utilizând câmpul transaction.source, unde, pentru tranzacția inițială, trebuie să setați transaction.source=INTERNET sau orice altă valoare permisă pentru a indica faptul că tranzacția a fost inițiată de către plătitor. Pentru plățile ulterioare din serie, trebuie să setați transaction.source=MERCHANT pentru a indica faptul că tranzacția a fost inițiată de către dvs. Your payment service provider trebuie să aibă atributul „MERCHANT” activat ca sursă permisă de tranzacții în legătura achizitor comerciant.

Referință API Sursă tranzacție [REST][NVP]

Atunci când trimiteți prima tranzacție inițiată de posesorul cardului sau plăți ulterioare inițiate de comerciant în aceeași serie, trebuie să indicați gateway-ului dacă detaliile de plată sunt stocate, nestocate sau intenționați să le stocați. Pentru mai multe informații, consultați întrebările frecvente.

Plăți periodice

O plată periodică este un acord prin care plătitorul vă autorizează să procesați plăți pentru facturi periodice, la intervale stabilite (de exemplu, săptămânal sau lunar).

Puteți trimite către gateway plăți periodice pentru procesare dacă aveți un acord de plată cu plătitorul, prin care acesta acceptă stocarea de către dvs. a detaliilor de plată pentru utilizare ulterioară și vă autorizează să inițiați plăți periodice ulterioare fără participarea activă a acestuia.

Pentru a permite acest lucru, trebuie să completați următoarele câmpuri în tranzacția inițială a seriei:

  • sourceOfFunds.type=CARD sau SCHEME_TOKEN
  • câmpurile sourceOfFunds.provided.card.* sau sourceOfFunds.token
  • transaction.source=INTERNET, and
  • sourceOfFunds.provided.card.storedOnFile=TO_BE_STORED
  • agreement.id
  • agreement.type=RECURRING

Pentru plățile ulterioare din serie care sunt inițiate de către dvs., trebuie să completați:

  • sourceOfFunds.type=CARD sau SCHEME_TOKEN
  • câmpurile sourceOfFunds.provided.card.* sau sourceOfFunds.token
  • transaction.source=MERCHANT
  • sourceOfFunds.provided.card.storedOnFile=STORED, and
  • agreement.id: Valoarea agreement.id trebuie să fie identică cu cea furnizată în tranzacția inițială. Acest lucru permite gateway-ului să asocieze plățile dintr-o serie.

Autentificarea plătitorului

Următorul tabel specifică diferite scenarii sau cazuri de utilizare pentru procesarea unei autentificări 3-D-Secure în cazul plăților inițiate de titularul cardului. Pentru mai multe informații privind autentificarea 3-D Secure, consultați Ghidul de integrare 3-D Secure.

Pentru tranzacțiile externe autorizate, consultați Recomandările de autentificare.

Următoarele câmpuri sunt necesare pentru succesul tranzacțiilor periodice atunci când utilizați solicitarea AUTHENTICATE_PAYER din API WS versiunea 61:

  • agreement.id
  • agreement.type=RECURRING
  • agreement.numberOfPayments
  • agreement.amountVariability
  • agreement.expiryDate
  • agreement.paymentFrequency
  • agreement.minimumDaysBetweenPayments

Următoarele câmpuri sunt necesare pentru succesul tranzacțiilor periodice atunci când utilizați solicitarea AUTHENTICATE_PAYER din API WS versiunea 57-60:

  • agreement.id
  • agreement.type=RECURRING
  • agreement.expiryDate
  • agreement.recurring.daysBetweenPayments
Caz de utilizare Pași pentru integrare

Încheiați cu plătitorul un acord de plată periodică care include o plată inițială și o serie nouă de plăți periodice.

  • Efectuați autentificarea conform descrierii din Recomandările de autentificare și specificați suma necesară pentru plata inițială.

  • Urmați pașii menționați în secțiunea Plăți inițiate de titularul cardului și apoi utilizați opțiunea 1 dacă procesați autentificarea 3-D Secure cu gateway-ul de plăți; în caz contrar, utilizați opțiunea 2.

    • Opțiunea 1: Asociați authentication.transactionId din etapele de autentificare.

    • sau

    • Opțiunea 2: Furnizați datele 3-D Secure de la o terță parte.

Stabiliți o serie de plăți periodice care nu include o plată inițială

Dacă doriți să stabiliți cu plătitorul o serie de plăți periodice care nu include nicio plată în momentul în care plătitorul se înscrie la serviciu.

Exemplu: Serviciile de tip abonament lunar care nu includ o plată în momentul înscrierii clientului.

Atunci când consultați Recomandările de autentificare, utilizați acești parametri suplimentari specificați la pașii următori pentru a integra 3DS pentru plăți periodice.

Pașii 1 și 2 trebuie efectuați cât timp titularul cardului participă la sesiune. Pasul 3 trebuie utilizat atunci când sunteți gata pentru procesarea plății.

Cât timp titularul cardului participă la sesiune, efectuați pașii 1 și 2. Când sunteți gata să procesați plata, utilizați pasul 3.

Pasul 1: Inițierea autentificării

  • authentication.purpose=ADD_CARD or MAINTAIN_CARD

Pasul 2: Autentificarea plătitorului

  • Amount= 0

  • agreement.type

    Pentru mai multe informații despre agreement.type, consultați secțiunea agreement.type.

  • agreement.expiryDate

  • agreement.minimumDaysBetweenPayments

Pasul 3: Efectuați operațiunea de verificare și apoi alegeți una dintre următoarele opțiuni:

  • Asociați authentication.transactionId

    Asigurați că introduceți aceleași detalii agreement.* cu cele introduse la pasul 1.

sau

Adăugarea unui card fără stabilirea unui acord de plată

Dacă doriți să oferiți furnizorilor opțiunea de a adăuga detaliile cardurilor atunci când își creează profilurile sau conturile fără a încheia mai întâi un acord în momentul înscrierii.

Cardul adăugat poate fi utilizat în viitor.

Atunci când consultați Recomandările de autentificare, utilizați acești parametri suplimentari specificați la pașii următori pentru a integra 3DS.

Pasul 1: Inițierea autentificării

  • authentication.purpose=ADD_CARD or MAINTAIN_CARD

Pasul 2: Autentificarea plătitorului

  • Amount= 0

Efectuarea plăților de rate inițiate de comerciant

Plata ratelor este un acord prin care plătitorul autorizează efectuarea mai multor plăți pentru o singură achiziție, procesate la intervale stabilite. De exemplu, o achiziție poate fi plătită în șase rate lunare.

Puteți trimite către gateway plăți de rate pentru procesare dacă aveți un acord de plată cu plătitorul, prin care acesta acceptă stocarea de către dvs. a detaliilor de plată pentru utilizare ulterioară și vă autorizează să inițiați plăți de rate ulterioare fără participarea activă a acestuia.

Pentru a permite acest lucru, trebuie să completați următoarele câmpuri în tranzacția inițială a seriei:

  • sourceOfFunds.type=CARD sau SCHEME_TOKEN
  • câmpurile sourceOfFunds.provided.card.* sau sourceOfFunds.token
  • transaction.source=INTERNET
  • sourceOfFunds.provided.card.storedOnFile=TO_BE_STORED
  • agreement.id, and
  • agreement.type=INSTALLMENT

Pentru plățile de rate ulterioare din serie care sunt inițiate de către dvs., trebuie să completați:

  • sourceOfFunds.type=CARD sau SCHEME_TOKEN
  • câmpurile sourceOfFunds.provided.card.* sau sourceOfFunds.token
  • transaction.source=MERCHANT
  • sourceOfFunds.provided.card.storedOnFile=STORED
  • agreement.id: Valoarea agreement.id trebuie să fie identică cu cea furnizată în tranzacția inițială. Acest lucru permite gateway-ului să asocieze plățile dintr-o serie.

Efectuarea plăților neprogramate inițiate de comerciant

O plată neplanificată este un acord prin care plătitorul autorizează comerciantul să retragă automat fonduri pentru o plată, pentru o achiziție convenită, atunci când acest lucru este necesar (fără planificare). De exemplu, adăugarea automată de fonduri atunci când soldul contului scade sub un anumit prag.

Puteți trimite către gateway plăți neplanificate pentru procesare dacă aveți un acord de plată cu plătitorul, prin care acesta acceptă stocarea de către dvs. a detaliilor de plată pentru utilizare ulterioară și vă autorizează să inițiați plăți neplanificate ulterioare fără participarea activă a acestuia.

Pentru a permite acest lucru, trebuie să completați următoarele câmpuri în tranzacția inițială a seriei:

  • sourceOfFunds.type=CARD sau SCHEME_TOKEN
  • câmpurile sourceOfFunds.provided.card.* sau sourceOfFunds.token
  • transaction.source=INTERNET
  • sourceOfFunds.provided.card.storedOnFile=TO_BE_STORED
  • agreement.id, and
  • agreement.type=UNSCHEDULED

Pentru plățile neplanificate ulterioare din serie care sunt inițiate de către dvs., trebuie să completați:

  • sourceOfFunds.type=CARD sau SCHEME_TOKEN
  • câmpurile sourceOfFunds.provided.card.* sau sourceOfFunds.token
  • transaction.source=MERCHANT
  • sourceOfFunds.provided.card.storedOnFile=STORED, and
  • agreement.id: Valoarea agreement.id trebuie să fie identică cu cea furnizată în tranzacția inițială. Acest lucru permite gateway-ului să asocieze plățile dintr-o serie.

Efectuarea plăților pentru practici industriale inițiate de comerciant

Puteți trimite plăți inițiate de comerciant care sunt trimise în contextul anumitor practici din industrie pentru procesare către gateway dacă aveți un acord de plată cu plătitorul în care plătitorul este de acord ca comerciantul să-și stocheze detaliile de plată pentru utilizare ulterioară și vă autorizează să inițiați plățile ulterioare ale comerciantului fără participarea activă a plătitorului.

Pentru a permite acest lucru, trebuie să completați următoarele câmpuri în tranzacția inițială a seriei:

  • order.id = "OD12345"
  • transaction.id = "TRAN 1"
  • sourceOfFunds.type=CARD sau SCHEME_TOKEN
  • câmpurile sourceOfFunds.provided.card.* sau sourceOfFunds.token
  • transaction.source = INTERNET, MOTO, MAIL_ORDER, TELEPHONE_ORDER, CALL_CENTRE, or VOICE_RESPONSE
  • sourceOfFunds.provided.card.storedOnFile= TO_BE_STORED

Pentru plățile ulterioare ale comerciantului pe care le inițiați, furnizați următoarele câmpuri:

  • order.id = "OD45678"
  • transaction.id = "TRAN 2"
  • sourceOfFunds.type=CARD sau SCHEME_TOKEN
  • câmpurile sourceOfFunds.provided.card.* sau sourceOfFunds.token
  • transaction.source = MERCHANT
  • sourceOfFunds.provided.card.storedOnFile= STORED
  • order.industryPracticePaymentReason : {DELAYED_CHARGE, NO_SHOW_PENALTY, PARTIAL_SHIPMENT}
  • referenceOrderId= "OD12345"
  • transaction.acquirer.traceid = "MCC123456889"
  • transaction.relatedTransactions.firstTransactionInTheSeries.source = MOTO, MAIL_ORDER, TELEPHONE_ORDER, CALL_CENTRE, or VOICE_RESPONSE
În cazul plății pentru practici industriale,
  • referenceOrderId furnizează o referință la order.id din tranzacția inițială inițiată de client din serie.
  • Câmpul transaction.acquirer.traceid este același cu authorizationResponse.transactionIdentifier din tranzacția inițială inițiată de client din serie. Acest câmp trebuie furnizat atunci când tranzacția inițială dintr-o serie a avut loc cu succes în afara gateway-ului MPGS.
  • Pentru setarea „DELAYED_CHARGE” ca motiv pentru plată în practica din domeniu, trebuie să furnizați câmpul transaction.relatedTransactions.firstTransactionInTheSeries.source din tranzacția inițială inițiată de client, în care tranzacția inițială inițiată de client dintr-o serie a avut loc cu succes în afara eGenius Platform. Valorile de enumerare permise sunt MOTO, MAIL_ORDER, TELEPHONE_ORDER, CALL_CENTRE sau VOICE_RESPONSE.

Efectuarea plăților de tip retrimitere inițiate de comerciant

Puteți retrimite o plată inițiată de comerciant în cazul în care plata autorizației anterioare a eșuat din cauza fondurilor insuficiente. Operațiunile care trebuie retrimise trebuie să fie doar Authorize sau Pay.

Pentru a permite acest lucru, trebuie să completați următoarele câmpuri în tranzacția inițială a seriei:

  • order.id = "OD12345"
  • transaction.id = "TRAN 1"
  • sourceOfFunds.type=CARD sau SCHEME_TOKEN
  • câmpurile sourceOfFunds.provided.card.* sau sourceOfFunds.token
  • transaction.source = INTERNET
  • sourceOfFunds.provided.card.storedOnFile= TO_BE_STORED

Pentru plățile ulterioare ale comerciantului pe care le inițiați, furnizați următoarele câmpuri:

Pentru referință, prima tranzacție MIT este denumită MIT1, iar tranzacția MIT retrimisă este denumită ulterior MIT2 în această secțiune.

Pentru MIT1, furnizați următoarele câmpuri:

  • order.id = "OD5678"
  • transaction.id = "TRAN 2"
  • sourceOfFunds.type=CARD sau SCHEME_TOKEN
  • câmpurile sourceOfFunds.provided.card.* sau sourceOfFunds.token
  • transaction.source = MERCHANT
  • sourceOfFunds.provided.card.storedOnFile= STORED
  • order.industryPracticePaymentReason : {DELAYED_CHARGE, NO_SHOW_PENALTY, PARTIAL_SHIPMENT}
  • referenceOrderId= "OD12345"
  • transaction.acquirer.traceid = "MCC0987335353"
În cazul plății pentru practici industriale,
  • referenceOrderId furnizează o referință la order.id din tranzacția inițială inițiată de client din serie.
  • Câmpul transaction.acquirer.traceid este același cu authorizationResponse.transactionIdentifier din tranzacția inițială inițiată de client din serie. Acest câmp trebuie furnizat atunci când tranzacția inițială dintr-o serie a avut loc cu succes în afara gateway-ului MPGS.

MIT 1 va fi respinsă din cauza fondurilor insuficiente. Prin urmare, comerciantul retrimite tranzacția MIT trimisă, care este acum MIT2.

Pentru MIT 2, furnizați următoarele câmpuri:

  • order.id = "OD5678"
  • În cazul retrimiterii MIT, se recomandă comercianților să folosească același transaction.id ca în MIT 1, dar un nou transaction.id ca gateway nu permite duplicarea transaction.id.
  • transaction.id = "TRAN 3"
  • sourceOfFunds.type=CARD sau SCHEME_TOKEN
  • câmpurile sourceOfFunds.provided.card.* sau sourceOfFunds.token
  • transaction.source = MERCHANT
  • sourceOfFunds.provided.card.storedOnFile= STORED
  • order.industryPracticePaymentReason : {DELAYED_CHARGE, NO_SHOW_PENALTY, PARTIAL_SHIPMENT}
  • transaction.resubmission="true"
  • referenceOrderId= "OD12345"
  • transaction.acquirer.traceid = "MCC0987335353"
În cazul retrimiterii,
  • referenceOrderId furnizează order.id de la ultima tranzacție inițiată de comerciant care a eșuat din cauza fondurilor insuficiente.
  • Câmpul transaction.acquirer.traceid este același cu authorizationResponse.transactionIdentifier din tranzacția inițială inițiată de client din serie. Acest câmp trebuie furnizat atunci când tranzacția inițială dintr-o serie a avut loc cu succes în afara gateway-ului MPGS.
  • transaction.acquirer.traceid este același cu authorizationResponse.transactionIdentifier din ultima tranzacție inițiată de comerciant din serie.

Hosted Checkout pentru Tranzacții inițiate de posesorul cardului

Hosted Checkout pentru Tranzacția inițiată de titularul cardului (CIT) vă permite să colectați consimțământul de la plătitor pentru a stoca detaliile de plată ale acestuia pentru tranzacțiile ulterioare inițiate de plătitor.

În prezent, interaction.operation=AUTHORIZE este acceptat pentru această funcționalitate. Asistența suplimentară pentru interaction.operation=PURCHASE va fi disponibilă în curând.

Cerință preliminară

  • Asigurați-vă că MSO a configurat profilul dvs. de comerciant pentru crearea de simboluri pe gateway.
  • Pentru a utiliza funcționalitatea Credential On File, trebuie utilizată WS API v74 sau o versiune ulterioară.

Solicitați o Hosted Checkout pentru CIT

Urmați acești pași pentru a solicita o Hosted Checkout pentru CIT:

  1. Solicitați o WS API INITIATE_CHECKOUT cu interaction.saveCardForCredentialOnFile=PAYER_INITIATED_PAYMENTS.

    Hosted Checkout oferă plătitorului opțiunile de plată disponibile.

    Lista de opțiuni de plată a plătitorului nu include Click to Pay.

    Lista de opțiuni de plată a plătitorului nu include Click to Pay.
  2. Dacă plătitorul selectează „Debit sau Credit”, se afișează următoarea casetă de selectare Opțiuni de plată.

    Model integrare CIT Hosted Checkout

    Dacă plătitorul plătește folosind o altă metodă decât un card de credit, de exemplu, ACH sau PayPal, se aplică procedura standard de validare. Hosted Checkout nu afișează sau nu oferă un link la Termeni și condiții, la Politicile de confidențialitate sau la ambele. Este responsabilitatea dvs. să furnizați aceste detalii plătitorului, conform oricăror reglementări sau legi privind confidențialitatea
  3. Plătitorul poate plăti acordând sau nu consimțământul său gateway-ului, adică cu sau fără bifarea casetei de selectare „Salvează acest card pentru achiziții viitoare”.
    1. Dacă plătitorul efectuează plata fără a-și acorda consimțământul, procesul de plată funcționează ca de obicei. În acest caz, gateway-ul nu va crea simboluri pentru cardul plătitorului.
    2. Dacă plătitorul efectuează plata acordându-și consimțământul, atunci Hosted Checkout:
      1. Setează corect indicatorul Card arhivat
      2. Trimiteți solicitarea de tranzacție AUTH (dacă interaction.operation=AUTHORIZE) cu sourceOfFunds.provided.card.storedOnFile=TO_BE_STORED și transaction.payerConsentForStoringCardDetails=PAYER_INITIATED_PAYMENTS.
      3. Trebuie să respectați schema și cerințele de reglementare (de exemplu, GDPR). Trebuie să oferiți plătitorului opțiunea de a elimina consimțământul și de a șterge simbolul de pe gateway.

  4. După ce gateway-ul readuce plătitorul pe site-ul magazinului dvs., trimiteți o solicitare WS API RETRIEVE_ORDER.
    1. Pentru o tranzacție realizată cu succes:
      1. Dacă plătitorul și-a acordat consimțământul, răspunsul va conține informația că a fost furnizat consimțământul în câmpul transaction.payerConsentForStoringCardDetails=PAYER_INITIATED_PAYMENTS.
      2. Dacă plătitorul și-a acordat consimțământul și tranzacția a avut succes, răspunsul va conține simbolul de pe gateway în câmpul sourceOfFunds.token.
  5. Pentru plata ulterioară inițiată de titularul cardului,
    1. Solicitați WS API INITIATE_CHECKOUT cu interaction.tokens conținând simbolul gateway
    2. interaction.saveCardForCredentialOnFile=PAYER_INITIATED_PAYMENTS – Acest lucru permite plătitorului să introducă noi detalii ale cardului și să le stocheze.

      Hosted Checkout afișează plătitorului opțiunile de plată disponibile.

  6. Dacă plătitorul selectează „Debit sau credit”, sunt listate detaliile pentru token și plătitorul poate alege să plătească cu simbolul.

    Model integrare CIT Hosted Checkout

Hosted Checkout pentru Tranzacții inițiate de comerciant

Hosted Checkout pentru Tranzacțiile inițiate de comerciant (MIT) vă permite să colectați consimțământul de la plătitor pentru a stoca detaliile de plată ale acestuia pentru tranzacțiile ulterioare inițiate de comerciant.

În prezent, interaction.operation=AUTHORIZE este acceptat pentru această funcționalitate. Asistența suplimentară pentru interaction.operation=PURCHASE va fi disponibilă în curând.

Cerință preliminară

  • Asigurați-vă că MSO a configurat profilul dvs. de comerciant pentru crearea de simboluri pe gateway.
  • Comercianții pot crea conturi de plătitor și pot salva informațiile despre simbol în conturile respective.
  • Pentru a utiliza funcționalitatea Credential On File, trebuie utilizată WS API v74 sau o versiune ulterioară.

Solicitați o Hosted Checkout pentru MIT

Urmați acești pași pentru a solicita o Hosted Checkout pentru MIT:

  1. Solicitați o WS APIINITIATE_CHECKOUT cu agreement.type și agreement.id

    Hosted Checkout oferă plătitorului opțiunile de plată prin debit sau credit.

    Model integrare MIT Hosted Checkout

    Trebuie să respectați schema și cerințele de reglementare (de exemplu, GDPR). Trebuie să oferiți plătitorului opțiunea de a elimina consimțământul și de a șterge simbolul de pe gateway.
  2. Plătitorul poate continua doar prin acordarea consimțământului, adică prin bifarea casetei de selectare. Butonul de plată este dezactivat până la bifarea casetei.

    Dacă plătitorul continuă cu acordarea consimțământului, atunci Hosted Checkout va trimite solicitarea de tranzacție cu următoarele valori:

    • sourceOfFunds.provided.card.storedOnFile=TO_BE_STORED
    • transaction.payerConsentForStoringCardDetails=MERCHANT_INITIATED_PAYMENTS
    • Trebuie să vă asigurați că plătitorul respectă schema și cerințele de reglementare (de exemplu, GDPR). Trebuie să oferiți plătitorului opțiunea de a elimina consimțământul și de a șterge simbolul de pe gateway.
  3. După ce gateway-ul readuce plătitorul pe site-ul magazinului dvs., trimiteți o solicitare WS API RETRIEVE_ORDER pentru o tranzacție reușită:
    1. Dacă plătitorul și-a dat consimțământul, răspunsul va conține informațiile transaction.payerConsentForStoringCardDetails=MERCHANT_INITIATED_PAYMENTS.
      Este responsabilitatea comerciantului să se asigure că articolele care nu necesită acorduri nu sunt incluse în comandă sau în tranzacție.
    2. Dacă plătitorul nu și-a acordat consimțământul, plătitorul nu poate continua (abandonarea coșului).

Întrebări frecvente

Cum pot indica gateway-ului că detaliile de plată sunt stocate, nu sunt stocate sau că intenționez să le stochez?

Pentru a respecta standardele schemei de carduri pentru procesarea tranzacțiilor inițiate de posesorul cardului și a celor inițiate de comerciant, trebuie să indicați gateway-ului dacă detaliile de plată sunt stocate, nestocate sau intenționați să le stocați folosind câmpul sourceOfFunds.provided.card.storedOnFile.

Pentru tranzacția inițială, respectiv cea inițiată de posesorul cardului:

  • dacă este vorba despre o singură plată și nu intenționați să stocați detaliile plății, puteți omite câmpul sourceOfFunds.provided.card.storedOnFile.
  • dacă este vorba despre o plată pentru care intenționați să stocați detaliile plății în vederea utilizării ulterioare, setați sourceOfFunds.provided.card.storedOnFile=TO_BE_STORED. Acest lucru indică gateway-ului că plătitorul a acceptat stocarea detaliilor de plată. Trebuie să setați această valoare:

    • indiferent de locul unde stocați detaliile de plată — în propria dvs. aplicație (necesită conformitatea cu PCI), prin crearea de simboluri pe gateway sau în simbolurile schemei de carduri.
    • indiferent dacă stocați detaliile de plată înainte sau după trimiterea tranzacției către gateway.

Pentru plățile ulterioare, fie că este vorba despre o tranzacție inițiată de posesorul cardului, care utilizează detaliile stocate ale plătitorului, sau despre o tranzacție inițiată de comerciant care utilizează detaliile de plată stocate, setați sourceOfFunds.provided.card.storedOnFile=STORED

Dacă utilizați crearea de simboluri pe gateway, gateway-ul va seta valorile implicite pentru dvs.

  • Dacă crearea de simboluri nu este activată pentru dvs., gateway-ul va seta sourceOfFunds.provided.card.storedOnFile=NOT_STORED
  • Când creați un simbol pentru detaliile cardului, gateway-ul setează sourceOfFunds.provided.card.storedOnFile la valoarea furnizată de dvs. în solicitarea de tranzacție. Puteți introduce TO_BE_STORED sau NOT_STORED în tranzacția inițiată de client.
  • Atunci când utilizați tranzacții ulterioare folosind simbolul de pe gateway, gateway-ul va seta sourceOfFunds.provided.card.storedOnFile=STORED

Referință API Stocare internă [REST][NVP]

Cum procedez dacă nu am un ID de acord?

Dacă nu aveți un identificator unic pentru acordul dvs. cu plătitorul, puteți să:

  • Generați un astfel de ID de acord în scopul interacțiunii cu gateway-ul. Apoi, va fi necesar să îl stocați și să îl trimiteți către gateway pentru toate plățile din serie, inclusiv pentru tranzacțiile inițiate de posesorul cardului.
  • Utilizați un identificator existent (pe care îl stocați deja în sistem), cum ar fi ID-ul comenzii pentru prima plată din serie.

Este necesar să trimit o plată atunci când stabilesc acordul de plată?

Dacă, în momentul stabilirii unui acord de plată cu plătitorul, nu intenționați să percepeți nicio plată de la acesta – de exemplu, dacă este vorba despre un abonament la o publicație, iar prima plată este programată în 30 de zile, trebuie să trimiteți o solicitare Verify cu detaliile acordului:

  • agreement.id
  • agreement.type

Tranzacția Verify va deveni prima tranzacție inițiată de posesorul cardului din serie. Pentru orice plăți ulterioare, utilizați agreement.id pentru a asocia plățile din serie.

Dacă plătitorul a fost autentificat folosind autentificarea 3-D Secure în MPGS, puteți introduce authentication.transactionId utilizat în tranzacția originală.

Pentru tranzacțiile autentificate extern, consultați Implementarea integrării 3DS cu ajutorul API de autentificare și navigați la secțiunea Opțiuni > Trimiterea unei solicitări de plată pre-autentificate.

Ce se întâmplă dacă se modifică PAN pentru un acord?

Detaliile de plată asociate unui acord se pot schimba, de exemplu, dacă:

  • plătitorul și-a pierdut cardul și primește un card nou
  • plătitorul își schimbă banca și
  • cardul nu are fonduri suficiente, iar plătitorul a furnizat alte detalii de plată

Dacă detaliile cardului s-au schimbat (exceptând cazul reemiterii unui card expirat, împreună cu simbolurile schemei de carduri), trebuie să efectuați o tranzacție inițiată de către posesorul cardului folosind același ID de acord pentru a actualiza detaliile de plată/simbolul de pe gateway înainte de a efectua o tranzacție inițiată de comerciant folosind noul număr de card. În funcție de modelul dvs. de afaceri, puteți alege să creați un acord nou.

Dacă utilizați un simbol de schemă, numărul de card stocat și asociat simbolului schemei poate fi actualizat automat de către schemă.

Copyright © 2023 UniCredit Bank