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:
Gateway-ul acceptă următoarele plăți care utilizează detaliile de plată stocate începând din API WS v74:
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.
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
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
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.
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
Î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
Caz de utilizare retrimitere plată
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.
Referință API detalii acord [REST][NVP]
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ă:
Referință API detalii plată pratici industriale și detalii retrimitere [REST][NVP]
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.
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
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
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.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:
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:
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. |
|
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
Pasul 2: Autentificarea plătitorului
Pasul 3: Efectuați operațiunea de verificare și apoi alegeți una dintre următoarele opțiuni:
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
Pasul 2: Autentificarea plătitorului
|
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
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
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.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
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
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.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
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
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
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
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
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"
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"
transaction.id
= "TRAN 3"sourceOfFunds.type
=CARD
sau SCHEME_TOKEN
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"
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.
interaction.operation=AUTHORIZE
este acceptat pentru această funcționalitate. Asistența suplimentară pentru interaction.operation=PURCHASE va fi disponibilă în curând.Urmați acești pași pentru a solicita o Hosted Checkout pentru CIT:
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.
interaction.operation=AUTHORIZE
) cu sourceOfFunds.provided.card.storedOnFile=TO_BE_STORED
și transaction.payerConsentForStoringCardDetails=PAYER_INITIATED_PAYMENTS
.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.
RETRIEVE_ORDER
.
transaction.payerConsentForStoringCardDetails=PAYER_INITIATED_PAYMENTS
. sourceOfFunds.token
. INITIATE_CHECKOUT
cu interaction.tokens
conținând simbolul gatewayinteraction.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.
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.
interaction.operation=AUTHORIZE
este acceptat pentru această funcționalitate. Asistența suplimentară pentru interaction.operation=PURCHASE va fi disponibilă în curând.Urmați acești pași pentru a solicita o Hosted Checkout pentru MIT:
INITIATE_CHECKOUT
cu agreement.type
și agreement.id
Hosted Checkout oferă plătitorului opțiunile de plată prin debit sau credit.
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
RETRIEVE_ORDER
pentru o tranzacție reușită:
transaction.payerConsentForStoringCardDetails=MERCHANT_INITIATED_PAYMENTS.
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:
sourceOfFunds.provided.card.storedOnFile
.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: 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.
sourceOfFunds.provided.card.storedOnFile
=NOT_STORED
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.
sourceOfFunds.provided.card.storedOnFile
=STORED
Referință API Stocare internă [REST][NVP]
Dacă nu aveți un identificator unic pentru acordul dvs. cu plătitorul, puteți să:
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.
Detaliile de plată asociate unui acord se pot schimba, de exemplu, dacă:
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