Tranzacții cu date de autentificare salvate
Următoarele secțiuni descriu cum să trimiteți tranzacțiile inițiate de titularul cardului și ale comerciantului (CIT și MIT) către eGenius Platform în scopul de a se conforma standardelor schemelor de carduri pentru procesarea acestor tranzacții:
- Plăți inițiate de posesorul cardului:
- Plăți inițiate de comerciant:
Pentru informații generale despre scenariile de mai sus, consultați Plăți inițiate de deținătorul de card și de comerciant. Pentru exemple complete de solicitări pentru toate scenariile, descărcați colecția Postman.
Ori de câte ori trimiteți mai multe plăți într-o serie, prima tranzacție trebuie să fie un CIT care oferă aprobarea deținătorului cardului pentru întreaga serie. Tranzacțiile ulterioare sunt de obicei MIT-uri. În toate solicitările, puteți utiliza câmpul transaction.source
pentru a identifica dacă o tranzacție este inițiată de posesorul cardului sau de comerciant și câmpul sourceOfFunds.provided.card.storedOnFile
pentru a indica dacă detaliile de plată trebuie stocate, au fost stocate anterior sau intenționați să le stocați. Pentru mai multe informații, consultați întrebările frecvente.
- Scenariile de mai sus sunt acceptate începând cu API v74.
- Pentru a putea trimite orice MIT, Your payment service provider (PSP) dvs. trebuie să aibă MERCHANT activat ca sursă de tranzacție permisă pe linkul dvs. de achizitor comerciant.
- Dacă doriți să stocați detaliile de plată ale plătitorului în gateway și să utilizați un simbol pentru a face referire la detaliile stocate, PSP-ul dvs. trebuie să configureze profilul de comerciant pentru crearea de simboluri de gateway.
CIT-urile în general
O tranzacție CIT poate fi o plată unică în care de obicei nu stocați detaliile de plată furnizate de plătitor. Cu toate acestea, plătitorul poate fi de acord ca dvs. să stocați detaliile de plată pentru utilizare ulterioară (de obicei, ca parte a unui proces de înregistrare a clientului sau de creare a contului), astfel încât să puteți oferi tranzacții ulterioare inițiate de posesorul cardului folosind detaliile de plată stocate.
- În solicitarea de tranzacție inițială cu un client nou, trebuie să furnizați următoarele câmpuri:
sourceOfFunds.type = CARD
sauSCHEME_TOKEN
Valoarea depinde furnizarea detaliilor neprocesate ale cardului sau a unui simbol (având deja un simbol creat pentru detaliile cardului).
- câmpurile
sourceOfFunds.provided.card.*
sausourceOfFunds.token
transaction.source = INTERNET
Valoarea indică gateway-ului că tranzacția este inițiată de posesorul cardului. Puteți seta valoarea la
INTERNET
,MOTO
,MAIL_ORDER
,TELEPHONE_ORDER
,VOICE_RESPONSE
sauCALL_CENTER
.sourceOfFunds.provided.card.storedOnFile = TO_BE_STORED
Valoarea indică faptul că plătitorul este de acord ca dvs. să stocați detaliile de plată pentru utilizare ulterioară.
INTERNET
. Cu toate acestea, trebuie să indicați canalul prin care ați primit plata.În orice plăți ulterioare inițiate de plătitor (nu de dvs.) și în care sunt utilizate detaliile de plată stocate ale plătitorului, trebuie să furnizați următoarele câmpuri în solicitare:
-
sourceOfFunds.type = CARD
sauSCHEME_TOKEN
Valoarea depinde de stocarea detaliilor de către dvs. sau de către gateway (caz în care furnizați un simbol).
-
câmpurile
sourceOfFunds.provided.card.*
sausourceOfFunds.token
-
transaction.source = INTERNET
-
sourceOfFunds.provided.card.storedOnFile = STORED
Pentru mai multe detalii despre cum să indicați gateway-ului cum și dacă trebuie să fie stocate detaliile de plată, consultați Întrebări frecvente.
CIT-uri cu 3DS
CIT-urile pot fi autentificate cu 3DS pentru a identifica posesorul cardului și a preveni frauda. Puteți folosi 3DS în:
- CIT-uri unice
- CIT-uri care formează prima etapă dintr-o serie de plăți, unde cele ulterioare sunt MIT-uri
- Scenarii în care doriți să autentificați posesorul cardului atunci când adăugați cardul acestuia în contul de client pentru utilizare ulterioară
Următorul tabel descrie câteva cazuri de utilizare detaliate legate de autentificarea 3DS. Pentru mai multe informații atât despre autentificarea 3DS în gateway, cât și despre utilizarea autorizației externe în tranzacțiile de plată, consultați Autentificare 3DS.
Caz de utilizare | Pași pentru integrare |
---|---|
Acord cu plătitorul pentru plăți periodice, inclusiv o taxă inițială în CIT. |
Pasul 1: Efectuați autentificarea conform descrierii din Recomandările de autentificare și specificați suma necesară pentru plata inițială. Pasul 2: Creați solicitarea CIT cu detaliile definite în secțiunea Plăți inițiate de deținătorul cardului și adăugați una dintre următoarele:
|
Acord cu plătitorul pentru plăți periodice, fără a include o taxă inițială în CIT. |
Acest caz de utilizare acoperă serii de plăți periodice în care nu este datorată nicio plată în momentul în care plătitorul se înscrie la serviciu. În timp ce efectuați autentificarea așa cum este descris în subiectul Autentificare 3DS, utilizați câmpurile suplimentare specificate la pașii următori pentru a integra 3DS pentru plăți periodice. Pasul 1: Efectuați operația INITIATE AUTHENTICATION și setați scopul autentificării la ADD_CARD sau MAINTAIN_CARD. Pasul 2: Efectuați operațiunea AUTHENTICATE PAYER cu următoarele câmpuri:
Pasul 3: Ca solicitare CIT, efectuați solicitarea de operațiune VERIFY și adăugați una dintre următoarele:
Dacă utilizați integrarea Hosted Session, parcurgeți pașii 1 și 2 în cadrul sesiunii și apoi utilizați ID-ul sesiunii (din sesiunea creată pentru pașii 1 și 2) când trimiteți solicitarea de la serverul dvs. la pasul 3.
|
Adăugarea unui card fără acord de plată |
Acest caz de utilizare acoperă un scenariu în care plătitorul dorește să adauge detaliile cardului în timp ce își creează profilul sau contul de client cu dvs. fără nicio plată imediată. Plătitorul poate folosi cardul stocat în viitor pentru plăți unice sau pentru a stabili un acord de plată pentru o serie de plăți. Pasul 1: Efectuați operația INITIATE AUTHENTICATION și setați scopul autentificării la ADD_CARD sau MAINTAIN_CARD. Pasul 2: Efectuați operațiunea AUTHENTICATE PAYER și setați suma la 0. Pasul 3: Ca solicitare CIT, efectuați solicitarea de operațiune VERIFY și adăugați una dintre următoarele:
Dacă utilizați integrarea Hosted Session, parcurgeți pașii 1 și 2 în cadrul sesiunii și apoi utilizați ID-ul sesiunii (din sesiunea creată pentru pașii 1 și 2) când trimiteți solicitarea de la serverul dvs. la pasul 3.
|
Următoarele câmpuri sunt necesare în operațiunea AUTHENTICATE PAYER pentru a avea o tranzacție periodică de succes:
- Când utilizați API v61 sau o versiune ulterioară:
- agreement.id
- agreement.type=RECURRING
- agreement.numberOfPayments
- agreement.amountVariability
- agreement.expiryDate
- agreement.paymentFrequency
- agreement.minimumDaysBetweenPayments
Când utilizați API v57 - v60:
- agreement.id
- agreement.type=RECURRING
- agreement.expiryDate
- agreement.recurring.daysBetweenPayments
CIT-uri cu Hosted Checkout și acreditările stocate
Pentru a crea un CIT cu Hosted Checkout când nu există acreditări stocate:
- Trimiteți o solicitare de operațiune INITIATE CHECKOUT cu
interaction.saveCardForCredentialOnFile = PAYER_INITIATED_PAYMENTS
.Hosted Checkout oferă plătitorului opțiunile de plată disponibile în fereastra Opțiuni de plată.
- Scenariile cu acreditare înregistrată și Hosted Checkout sunt acceptate începând din API v74.
- Dacă acceptați metoda de plată Click to Pay, Hosted Checkout nu o afișează separat pe pagina de plată. Plătitorului i se cere adresa de e-mail, iar dacă plătitorul are un profil Click to Pay, cardurile pe care le-a stocat pentru profilul său sunt listate în secțiunea Debit sau credit.
- Plătitorul selectează Debit sau credit.
Hosted Checkout nu afișează și nu include niciun link către Termeni și condiții sau Politicile de confidențialitate. Este responsabilitatea dvs. să furnizați aceste detalii plătitorului, conform oricăror reglementări sau legi privind confidențialitatea
- 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.
- Dacă plătitorul efectuează plata fără a-și acorda consimțământul, procesul de plată funcționează ca de obicei.
- Dacă plătitorul efectuează plata acordându-și consimțământul, atunci Hosted Checkout:
- Setează indicatorul Card salvat corect
- Trimiteți solicitarea de tranzacție PAY (dacă
interaction.operation=AUTHORIZE
) cusourceOfFunds.provided.card.storedOnFile=TO_BE_STORED
șitransaction.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.
Dacă plătitorul plătește cu o altă metodă decât un card de credit, cum ar fi ACH (Automated Clearing House) sau PayPal, se aplică procedura standard de validare. Gateway-ul stochează doar detaliile cardului, așa că, dacă doriți să stocați orice detalii de plată legate de alte metode de plată, trebuie să o faceți singuri după ce primiți consimțământul plătitorului. - După ce gateway-ul readuce plătitorul pe site-ul magazinului dvs., trimiteți o solicitare de operațiune
RETRIEVE_ORDER
.- Dacă plătitorul și-a dat consimțământul, răspunsul conține câmpul
transaction.payerConsentForStoringCardDetails=PAYER_INITIATED_PAYMENTS
. - Pentru a crea simbolul pe care îl puteți utiliza pentru a face referire la acreditările stocate în gateway, utilizați operațiunea CREATE OR UPDATE TOKEN. Pentru mai multe detalii, consultați Crearea de simboluri de gateway.
- Dacă plătitorul și-a dat consimțământul, răspunsul conține câmpul
- Pentru orice plată ulterioară inițiată de deținătorul de card, trimiteți solicitarea de operațiune INITIATE CHECKOUT:
interaction.tokens
care conține simbolul gatewayinteraction.saveCardForCredentialOnFile=PAYER_INITIATED_PAYMENTS
Acest câmp permite plătitorului să introducă detaliile unui card nou și să le stocheze, dacă nu dorește să le folosească pe cele anterioare.
Hosted Checkout afișează plătitorului opțiunile de plată disponibile și cardurile stocate.
- Dacă plătitorul selectează Debit sau credit, sunt afișate detaliile pentru simbol, iar plătitorul poate alege să plătească cu simbolul sau să adauge detaliile pentru un alt card.
CIT-uri cu Hosted Checkout pentru autorizarea MIT-urilor
Pentru a colecta consimțământul de la plătitor cu abilitatea Hosted Checkout de a stoca detaliile de plată pentru MIT-urile ulterioare (de exemplu, prin crearea unui cont de plătitor în sistemul dvs. și stocarea detaliilor în cont):
- Trimiteți o solicitare de operațiune INITIATE CHECKOUT cu:
agreement.id
Valoarea unică generată de către dvs. pentru a identifica un acord de plată încheiat cu plătitorul. Trebuie să o trimiteți la MIT-urile ulterioare pentru a lega plățile într-o serie. Acest lucru este necesar pentru a respecta mandatele schemelor de carduri în care ID-ul acordului acționează ca identificator pentru a lega CIT-ul precedent de MIT-urile ulterioare.
agreement.type
Genul de acord comercial care a fost încheiat cu plătitorul.
- Scenariile cu acreditare înregistrată și Hosted Checkout sunt acceptate începând din API v74.
- Detaliile acordului sunt necesare numai dacă intenționați să procesați ulterior MIT-uri asociate cu CIT-ul. Dacă intenționați să procesați doar CIT-uri cu detaliile de plată stocate, nu este necesar niciun acord.
Hosted Checkout oferă plătitorului opțiunile de plată cu cardul de debit sau de credit.
- 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 acreditările salvate.
- Este responsabilitatea dvs. să vă asigurați că articolele care nu necesită acorduri nu sunt incluse în comandă sau în tranzacție.
- Plătitorul poate continua doar prin acordarea consimțământului, adică prin bifarea casetei de selectare. Butonul de plată este dezactivat până când acesta bifează caseta de selectare.
Dacă plătitorul continuă cu acordarea consimțământului, Hosted Checkout trimite solicitarea de tranzacție cu următoarele valori:
sourceOfFunds.provided.card.storedOnFile = TO_BE_STORED
transaction.payerConsentForStoringCardDetails = MERCHANT_INITIATED_PAYMENTS
- După ce gateway-ul readuce plătitorul pe site-ul dvs. web, trimiteți o solicitare de operațiune RETRIEVE ORDER:
- Dacă plătitorul și-a dat consimțământul, răspunsul conține câmpul
transaction.payerConsentForStoringCardDetails = MERCHANT_INITIATED_PAYMENTS
. - Dacă plătitorul nu și-a dat consimțământul, plătitorul nu poate continua (coșul este abandonat).
- Dacă plătitorul și-a dat consimțământul, răspunsul conține câmpul
Plățile periodice inițiate de comerciant
Puteți trimite către gateway plăți periodice pentru procesare dacă plătitorul acceptă stocarea de către dvs. a detaliilor de plată pentru utilizare ulterioară și aveți un acord de plată cu plătitorul, prin care vă autorizează să inițiați plăți periodice ulterioare fără participarea activă a acestuia.
În solicitarea CIT inițială, trebuie să furnizați următoarele câmpuri pentru a configura acordul:
sourceOfFunds.type
=CARD
sauSCHEME_TOKEN
Valoarea depinde furnizarea detaliilor neprocesate ale cardului sau a unui simbol (având deja un simbol creat pentru detaliile cardului).
- câmpurile
sourceOfFunds.provided.card.*
sausourceOfFunds.token
transaction.source
=INTERNET, and
Valoarea indică gateway-ului că tranzacția este inițiată de posesorul cardului.
sourceOfFunds.provided.card.storedOnFile
=TO_BE_STORED
Valoarea indică faptul că plătitorul este de acord ca dvs. să stocați detaliile de plată pentru utilizare ulterioară.
agreement.id
Valoarea unică generată de către dvs. pentru a identifica un acord de plată încheiat cu plătitorul.
agreement.type
=RECURRING
Acord constant de instrucțiuni, încheiat cu plătitorul.
- Când utilizați API v61 și versiunile ulterioare:
agreement.numberOfPayments
agreement.amountVariability
agreement.expiryDate
agreement.paymentFrequency
agreement.minimumDaysBetweenPayments
- Când utilizați API v57 - v60:
agreement.expiryDate
agreement.recurring.daysBetweenPayments
În orice solicitări MIT ulterioare, trebuie să furnizați următoarele câmpuri:
sourceOfFunds.type
=CARD
sauSCHEME_TOKEN
Valoarea depinde de stocarea detaliilor de către dvs. sau de către gateway (caz în care furnizați un simbol).
- câmpurile
sourceOfFunds.provided.card.*
sausourceOfFunds.token
transaction.source
=MERCHANT
Valoarea indică gateway-ului că tranzacția este inițiată de comerciant.
sourceOfFunds.provided.card.storedOnFile
=STORED
agreement.id
Valoarea trebuie să fie același agreement.id cu cel furnizat în tranzacția CIT inițială. Acest lucru permite gateway-ului să conecteze plățile într-o serie și este necesar să respecte regulamentele schemei de carduri în care ID-ul acordului de plată acționează ca un identificator pentru a lega CIT-ul precedent de MIT-urile ulterioare.
Plăți de rate inițiate de comerciant
Puteți trimite plăți în rate pentru procesare către poarta de plată dacă plătitorul este de acord ca dvs. să stocați detaliile de plată pentru utilizare ulterioară și aveți un acord de plată cu plătitorul pentru a împărți o singură achiziție într-un număr de plăți procesate la intervale convenite.
În solicitarea CIT inițială, trebuie să furnizați următoarele câmpuri pentru a configura acordul:
sourceOfFunds.type
=CARD
sauSCHEME_TOKEN
Valoarea depinde furnizarea detaliilor neprocesate ale cardului sau a unui simbol (având deja un simbol creat pentru detaliile cardului).
- câmpurile
sourceOfFunds.provided.card.*
sausourceOfFunds.token
transaction.source
=INTERNET
Valoarea indică gateway-ului că tranzacția este inițiată de posesorul cardului.
sourceOfFunds.provided.card.storedOnFile
=TO_BE_STORED
Valoarea indică faptul că plătitorul este de acord ca dvs. să stocați detaliile de plată pentru utilizare ulterioară.
agreement.id
Valoarea unică generată de către dvs. pentru a identifica un acord de plată încheiat cu plătitorul.
agreement.type
=INSTALLMENT
Acord constant de instrucțiuni, încheiat cu plătitorul.
- Când utilizați API v61 și versiunile ulterioare:
agreement.numberOfPayments
agreement.amountVariability
agreement.expiryDate
agreement.paymentFrequency
agreement.minimumDaysBetweenPayments
- Când utilizați API v57 - v60:
agreement.expiryDate
agreement.recurring.daysBetweenPayments
În orice solicitări MIT ulterioare, trebuie să furnizați următoarele câmpuri:
sourceOfFunds.type
=CARD
sauSCHEME_TOKEN
Valoarea depinde de stocarea detaliilor de către dvs. sau de către gateway (caz în care furnizați un simbol).
- câmpurile
sourceOfFunds.provided.card.*
sausourceOfFunds.token
Valoarea indică gateway-ului că tranzacția este inițiată de comerciant.
transaction.source
=MERCHANT
sourceOfFunds.provided.card.storedOnFile
=STORED
agreement.id
Valoarea trebuie să fie același
agreement.id
cu cel furnizat în tranzacția CIT inițială. Acest lucru permite gateway-ului să conecteze plățile într-o serie și este necesar să respecte regulamentele schemei de carduri în care ID-ul acordului de plată acționează ca un identificator pentru a lega CIT-ul precedent de MIT-urile ulterioare.
Plăți neplanificate inițiate de comerciant
Puteți trimite către gateway plăți neprogramate pentru procesare dacă plătitorul acceptă stocarea de către dvs. a detaliilor de plată pentru utilizare ulterioară și aveți un acord de plată cu plătitorul, prin care vă autorizează să inițiați plăți neprogramate ulterioare fără participarea activă a acestuia.
În solicitarea CIT inițială, trebuie să furnizați următoarele câmpuri pentru a configura acordul:
sourceOfFunds.type
=CARD
sauSCHEME_TOKEN
Valoarea depinde furnizarea detaliilor neprocesate ale cardului sau a unui simbol (având deja un simbol creat pentru detaliile cardului).
- câmpurile
sourceOfFunds.provided.card.*
sausourceOfFunds.token
transaction.source
=INTERNET
Valoarea indică gateway-ului că tranzacția este inițiată de posesorul cardului.
sourceOfFunds.provided.card.storedOnFile
=TO_BE_STORED
Valoarea indică faptul că plătitorul este de acord ca dvs. să stocați detaliile de plată pentru utilizare ulterioară.
agreement.id
Valoarea unică generată de către dvs. pentru a identifica un acord de plată încheiat cu plătitorul.
agreement.type
=UNSCHEDULED
Acord constant de instrucțiuni, încheiat cu plătitorul.
- Când utilizați API v61 și versiunile ulterioare:
agreement.numberOfPayments
agreement.amountVariability
agreement.paymentFrequency
- Când utilizați API v57 - v60:
agreement.expiryDate
agreement.recurring.daysBetweenPayments
În orice solicitări MIT ulterioare, trebuie să furnizați următoarele câmpuri:
sourceOfFunds.type
=CARD
sauSCHEME_TOKEN
Valoarea depinde de stocarea detaliilor de către dvs. sau de către gateway (caz în care furnizați un simbol).
- câmpurile
sourceOfFunds.provided.card.*
sausourceOfFunds.token
transaction.source
=MERCHANT
Valoarea indică gateway-ului că tranzacția este inițiată de comerciant.
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.Valoarea trebuie să fie același agreement.id cu cel furnizat în tranzacția CIT inițială. Acest lucru permite gateway-ului să conecteze plățile într-o serie și este necesar să respecte regulamentele schemei de carduri în care ID-ul acordului de plată acționează ca un identificator pentru a lega CIT-ul precedent de MIT-urile ulterioare.
Plăți inițiate de comerciant conform practicilor din domeniu
Puteți trimite plățile conform practicilor din domeniu pentru procesare de către gateway dacă plătitorul vă permite să stocați detaliile de plată pentru utilizare ulterioară și vă autorizează să inițiați tranzacții ulterioare inițiate de comerciant (MIT) fără participarea activă a plătitorului.
În solicitarea de MIT conform practicilor din domeniu, trebuie să furnizați următoarele câmpuri:
order.industryPracticePaymentReason
Tipul de plată din domeniu pe care îl creați, de exemplu, DELAYED_CHARGE, NO_SHOW_PENALTY sau PARTIAL_SHIPMENT.
sourceofFunds.provided.card.storedOnFiles = STORED
Valoarea indică faptul că plătitorul a fost de acord ca dvs. să stocați detaliile de plată pentru utilizare ulterioară.
referenceOrderId
ID comandă de la CIT-ul precedent. Gateway-ul folosește acest câmp pentru a căuta Trace ID pentru CIT-ul anterior.
transaction.acquirer.traceid
ID de urmărire. Acest câmp conține authorizationResponse.transactionIdentifier din răspunsul de la CIT inițial din serie. Acest câmp este necesar numai dacă ID-ul comenzii nu este disponibil. Dacă furnizați ID-ul acordului și nu furnizați ID-ul de referință al comenzii sau ID-ul de urmărire pe cardurile tranzacționate cu Mastercard, gateway-ul va furniza un ID de urmărire gateway implicit.
Exemplu de flux de practică din domeniu
CIT inițial:
order.id
= "OD12345"transaction.id
= "TRAN 1"agreement.id =
= "AGR 1"sourceOfFunds.type
=CARD
sauSCHEME_TOKEN
- câmpurile
sourceOfFunds.provided.card.*
sausourceOfFunds.token
transaction.source
=INTERNET
sourceOfFunds.provided.card.storedOnFile
=TO_BE_STORED
Procedura cu MIT conform practicilor din domeniu, trimisă ca o nouă comandă, din cauza unei taxe întârziate:
order.id
="OD45678"
transaction.id
= "TRAN 2"agreement.id =
= "AGR 1"sourceOfFunds.type
=CARD
sauSCHEME_TOKEN
- câmpurile
sourceOfFunds.provided.card.*
sausourceOfFunds.token
transaction.source
=MERCHANT
sourceOfFunds.provided.card.storedOnFile
=STORED
order.industryPracticePaymentReason
=DELAYED_CHARGE
referenceOrderId
="OD12345"
Plăți de retrimitere inițiate de comerciant
Puteți retrimite plățile eșuate pentru procesare către gateway dacă plătitorul a fost de acord ca dvs. să stocați detaliile de plată pentru utilizare ulterioară și răspunsul emitentului la plata eșuată nu vă interzice să încercați din nou mai târziu.
În solicitarea de retrimitere MIT, trebuie să furnizați următoarele câmpuri:
order.id
În cazul unei retrimiteri MIT, utilizați același ID de comandă ca în primul MIT, dar un nou transaction.id, deoarece gateway-ul nu permite ID-uri de tranzacție duplicate în cadrul aceleiași comenzi.
transaction.resubmission = "true"
Indicație că acest MIT este o retrimitere pentru o autorizare anterioară eșuată.
referenceOrderId
ID comandă de la CIT-ul precedent. Gateway-ul folosește acest câmp pentru a căuta Trace ID pentru CIT-ul anterior.
- Dacă CIT anterioară a fost efectuată în afara gateway-ului, ar trebui să furnizați:
transaction.acquirer.traceid
ID de urmărire. Acest câmp conține
authorizationResponse.transactionIdentifier
din răspunsul de la CIT inițial din serie. Acest câmp este necesar numai dacă ID-ul comenzii nu este disponibil. - Dacă furnizați ID-ul acordului și nu furnizați ID-ul de referință al comenzii sau ID-ul de urmărire pe cardurile tranzacționate cu Mastercard, gateway-ul va furniza un ID de urmărire gateway implicit.
Exemplu de flux de retrimitere
CIT inițial:
order.id
= "OD12345"transaction.id
= "TRAN 1"agreement.id
= "AGR 1"sourceOfFunds.type
=CARD
sauSCHEME_TOKEN
- câmpurile
sourceOfFunds.provided.card.*
sausourceOfFunds.token
transaction.source
=INTERNET
sourceOfFunds.provided.card.storedOnFile
=TO_BE_STORED
Primul MIT, trimis ca o nouă comandă, ca o practică obișnuită din domeniu din cauza încasării întârziate:
order.id
="OD5678"
transaction.id
= "TRAN 2"sourceOfFunds.type
=CARD
sauSCHEME_TOKEN
- câmpurile
sourceOfFunds.provided.card.*
sausourceOfFunds.token
transaction.source
=MERCHANT
sourceOfFunds.provided.card.storedOnFile
=STORED
order.industryPracticePaymentReason
=DELAYED_CHARGE
referenceOrderId
="OD12345"
După ce primul MIT eșuează din cauza fondurilor insuficiente, un al doilea MIT este trimis ca retrimitere (aceeași comandă):
order.id
="OD5678"
transaction.id
= "TRAN 3"sourceOfFunds.type
=CARD
sauSCHEME_TOKEN
- câmpurile
sourceOfFunds.provided.card.*
sausourceOfFunds.token
transaction.source
=MERCHANT
sourceOfFunds.provided.card.storedOnFile
=STORED
order.industryPracticePaymentReason
=DELAYED_CHARGE
transaction.resubmission
="true"
Întrebări frecvente
Cum pot indica portalului cum sunt gestionate detaliile de plată?
Pentru a respecta standardele schemei de carduri pentru procesarea CIT-urilor și MIT-urilor, 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 CIT-ul inițial:
- Dacă este o plată unică și nu intenționați să stocați detaliile de plată, omiteți câmpul
sourceOfFunds.provided.card.storedOnFile
din solicitare. -
Dacă aceasta este prima dată când plătitorul face afaceri cu dvs. și detaliile de plată ale acestuia nu au fost stocate anterior, dar acum intenționați să le stocați pentru utilizare ulterioară, 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:- Cum stocați detaliile de plată – în propria aplicație sau pe propriul dvs. site web (necesită conformitate PCI) sau folosind crearea de simboluri de gateway sau rețea.
- Dacă stocați detaliile de plată înainte sau după trimiterea tranzacției către gateway.
Dacă utilizați Hosted Checkout sau Hosted Session, puteți stoca detaliile de plată folosind gateway-ul sau crearea de simboluri de rețea după ce CIT-ul inițial a fost efectuat și plătitorul a furnizat detaliile de plată către gateway. Utilizați operațiunea CREATE OR UPDATE TOKEN cu ID-ul de sesiune relevant.
Dacă utilizați Direct Payment sau Hosted Batch, puteți stoca detaliile înainte sau după finalizarea CIT-ului inițial.
- Dacă plătitorul este un client care revine și i-ați stocat mai devreme detaliile de plată pentru o altă comandă, nu trebuie să stocați din nou detaliile de plată. Cu toate acestea, dacă utilizați noul CIT pentru a crea un acord cu plătitorul pentru viitoarele MIT-uri legate de acest CIT, setați
sourceOfFunds.provided.card.storedOnFile
=TO_BE_STORED
. Acest lucru indică gateway-ului că veți folosi aceste detalii pentru viitoare tranzacții MIT.
Pentru plățile ulterioare, setați sourceOfFunds.provided.card.storedOnFile
=STORED
pentru a indica faptul că detaliile de plată stocate sunt utilizate în plată. Acest lucru se aplică și în situațiile în care plătitorul revine și detaliile sale de plată stocate sunt utilizate pentru un nou CIT care nu necesită un nou acord pentru viitoarele MIT-uri.
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 trebuie să îl stocați și să îl trimiteți către gateway pentru toate plățile din serie, inclusiv CIT-ul.
- Utilizați un identificator existent (pe care îl stocați deja în sistem), cum ar fi ID-ul comenzii pentru prima plată din serie.
Folosiți întotdeauna un ID-ul acordului, dacă este posibil, deoarece este un identificator unic între dvs. și plătitor. De exemplu, dacă plătitorul trebuie să-și reînnoiască polița de asigurare, ID-ul acordului poate fi numărul poliței.
În unele situații, este posibil să nu aveți acces la ID-ul acordului inițial. De exemplu:
- Acordul a fost făcut cu mult timp în urmă și detaliile nu au fost păstrate în evidențe.
- Nu cunoașteți ID-ul acordului inițial sau acesta a fost făcut pe un alt gateway de plată.
În aceste cazuri, nu puteți genera un nou ID al acordului, dar trebuie să utilizați un ID de comandă de referință sau un ID de urmărire.
ID-ul comenzii de referință reflectă cea mai recentă comandă din seria de tranzacții. De exemplu, dacă seria de tranzacții constă dintr-un CIT inițial și 2 MIT-uri ulterioare:
- CIT inițial are ID-ul de comandă = 1
- Primul MIT are ID-ul de comandă = 2 și folosește ID-ul comenzii de referință = 1 (deoarece se referă la CIT inițial)
- Al doilea MIT are ID-ul de comandă = 3 și folosește ID-ul comenzii de referință = 2 (deoarece se referă la primul MIT, care este cel mai recent ID de comandă din serie)
ID-ul de urmărire (numit și ID de tranzacție de schemă) este un identificator unic pe care toate schemele îl emit pentru fiecare tranzacție procesată prin intermediul acestora. ID-ul de urmărire este utilizat pentru a identifica tranzacțiile asociate, de exemplu:
- Tranzacția ulterioară CAPTURE
- Anularea unei tranzacții
- Tranzacție REFUND AUTHORIZATION asociată
- Tranzacție ulterioară într-o serie de plăți periodice, în rate sau neprogramate
- AUTHORIZATION care trebuie actualizată
Schemele folosesc diferite metode pentru a genera acest ID:
- Mastercard generează un ID care combină:
- Codul rețelei financiare din 3 cifre
- Număr de referință Banknet (AN6)
- Data tranzacției (LLZZ)
- VISA generează un ID care este unic pentru fiecare tranzacție inițială.
- Amex generează un ID unic pentru fiecare tranzacție inițială.
Este necesar să trimit o plată atunci când stabilesc acordul de plată?
Nu. 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 devine primul CIT din serie. Pentru orice plăți ulterioare, utilizați agreement.id
pentru a asocia plățile din serie.
Dacă plătitorul a fost autentificat în gateway folosind autentificarea 3DS, puteți furniza authentication.transactionId
din rezultatul autentificării gateway în solicitarea VERIFY pentru a asocia autentificarea cu acordul de plată. Pentru tranzacțiile autentificate extern, consultați întrebările frecvente din Autentificare 3DS.
Ce se întâmplă dacă detaliile de plată pentru un acord se modifică?
Detaliile de plată asociate unui acord se pot schimba, de exemplu, dacă:
- Plătitorul și-a pierdut cardul și a primit un card nou.
- Plătitorul și-a schimbat banca.
- Cardul nu avea fonduri suficiente, iar plătitorul a furnizat alte detalii de plată
Dacă detaliile cardului s-au modificat (cu excepția cazului de reemitere a unui card expirat și al simbolurilor de rețea), trebuie să efectuați un CIT folosind ID-ul de acord inițial pentru a actualiza detaliile de plată sau simbolul de gateway înainte de a efectua orice MIT cu noul număr de card. În funcție de modelul dvs. de afaceri, puteți decide și să creați un nou acord cu plătitorul.
Dacă utilizați crearea de simboluri de rețea, schemele pot actualiza automat numărul cardului stocat pe gateway pentru simbolul de rețea.