- Ghid de integrare
- Caracteristici acceptate
- Plățile cu costuri de transport agregate
Transport – plățile cu costuri de transport agregate
Plățile cu costuri de transport agregate sunt utile în situațiile în care nu cunoașteți costul final care va fi aplicat la începutul călătoriei. În astfel de situații, costul final este calculat la sfârșitul perioadei de transport – în general, de 24 de ore, pe baza călătoriilor realizate în perioada respectivă. Această pagină descrie cazurile de utilizare a costurilor de transport agregate și procesul de trimitere a unei solicitări valide către gateway. Trimiteți diferite solicitări pentru carduri Mastercard și Visa. Pentru cardurile American Express, urmați instrucțiunile disponibile pentru Mastercard. Prin schema de plăți cu costuri de transport agregate,
- puteți agrega costurile tranzacțiilor plătitorului pentru mai multe călătorii, efectuate într-o anumită perioadă de timp, în limita unei anumite sume și
- puteți aplica costuri fixe sau bazate pe timp ori distanță pentru fiecare călătorie din perioada respectivă.
Serviciile eGenius Platform sunt utile pentru funcționalitatea de colectare costuri de transport agregate pentru
- Procesarea unei tranzacții EMV și a plăților mobile contactless începând cu versiunea 66 a WS API
- Mastercard, cu excepția cardurilor Maestro, conform regulilor schemei Mastercard
- Cardurile Visa, conform regulilor schemei Visa
- Cardurilor American Express, conform regulilor schemei Mastercard.
Cerințe preliminare
Pentru a trimite tranzacții cu costuri de transport agregate, trebuie să aveți unul dintre următoarele coduri de categorie comerciant (MCC):
Mastercard
- 4111 – transport suburban și local navetă pasageri, inclusiv feriboturi
- 4131 – linii de autobuz
- 4784 – taxe rutiere și de pod, taxe de trecere
- 7523 – parcări auto deschise sau închise
Visa
- 4111 – transport local și suburban de navetă pasageri, inclusiv feriboturi
- 4112 – transport feroviar de pasageri
- 4131 – linii de autobuz
American Express
- 4111 – transport local și suburban de navetă pasageri, inclusiv feriboturi
- 4112 – transport feroviar de pasageri
- 4131 – linii de autobuz
- 4784 – taxe de trecere și de pod
- 7523 – parcări auto deschise sau închise
Efectuați o certificare EMV conform regulilor schemei aplicabile. Your payment service provider trebuie să vă permită să
- trimiteți tranzacții Capture în exces și să
- apelați numerele vizibile ale cardurilor.
Plățile EMV contactless versus plățile mobile contactless
Compatibilitatea cu funcționalitatea de colectare costuri de transport agregate este furnizată pentru
- Plățile EMV contactless, în cazul cărora plătitorii prezintă cardul de credit la terminal.
- Plățile mobile contactless, în cazul cărora plătitorii prezintă dispozitivul mobil (cum ar fi telefonul mobil sau ceasul inteligent) la terminal.
Plățile mobile contactless
Pentru plățile mobile contactless, veți primi numai detaliile numărului de cont principal specific dispozitivului (DPAN), nu și detaliile numărului de cont primar de finanțare (FPAN) de la terminal. Ori de câte ori autorizarea conține un DPAN, răspunsul la tranzacție va conține
- DPAN, așa cum este furnizat în solicitare, în câmpul
sourceOfFunds.provided.card.deviceSpecificNumber - anul și luna de expirare a DPAN, așa cum sunt indicate în solicitare, în câmpurile
sourceOfFunds.provided.card.deviceSpecificExpiry.yearșisourceOfFunds.provided.card.deviceSpecificExpiry.month - FPAN, așa cum este returnat de schemă, în câmpul
sourceOfFunds.provided.card.numberși - anul și luna de expirare a FPAN, așa cum sunt returnate de schemă, în câmpurile
sourceOfFunds.provided.card.expiry.yearșisourceOfFunds.provided.card.expiry.month.
responseControls.sensitiveData=UNMASK în solicitarea Retrieve Transaction.
Identificarea contului de plată
Posibilitatea de completare pe gateway a Referinței contului de plată (PAR) în răspunsul la tranzacție a fost adăugată începând cu versiunea API 65. Pentru răspunsurile la tranzacție RETRIEVE_TRANSACTION și RETRIEVE_ORDER: PAR este returnată în câmpul sourceOfFunds.provided.card.paymentAccountReference.
Scenarii
Există mai multe scenarii de procesare a plăților cu costuri de transport agregate, în funcție de regulile schemei.
Prima atingere cu un card nou
Carduri Mastercard sau American Express
Tratați acest scenariu la fel cu scenariul Prima atingere în perioada de călătorie.
Card Visa
Pentru a verifica validitatea cardului, trimiteți solicitarea Verify cu următoarele detalii.
- un identificator pentru comandă în
order.id - un identificator unic în cadrul comenzii pentru tranzacția de verificare în
transaction.id - nicio valoare a comenzii în
order.amountsauorder.amount=0 - moneda comenzii în
order.currency sourceOfFunds.provided.card.emvRequestcu date valide ale etichetei EMV de la prima atingere în perioada de călătorietransaction.source=CARD_PRESENTposTerminal.attended=UNATTENDEDposTerminal.location=MERCHANT_TERMINAL_ON_PREMISESposTerminal.cardholderActivated=SELF_SERVICE_TERMINALposTerminal.inputCapability=CONTACTLESS_CHIPposTerminal.panEntryMode=CONTACTLESSposTerminal.pinEntryCapability=PIN_NOT_SUPPORTEDposTerminal.lane=99991111posTerminal.cardPresenceCapability=CARD_PRESENT
Acesta este exemplul REST pentru verificarea cardului înainte de începerea unei perioade de călătorie.
| URL | https://egenius.unicredit.ro/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| Metoda HTTP | PUT |
{
"apiOperation": "VERIFY",
"order": {
"amount": "0.00",
"currency": "AUD"
},
"posTerminal": {
"address": {
"country": "AUS",
"postcodeZip": "4000"
},
"attended": "UNATTENDED",
"cardPresenceCapability": "CARD_PRESENT",
"cardholderActivated": "SELF_SERVICE_TERMINAL",
"inputCapability": "CONTACTLESS_CHIP",
"lane": "99991111",
"location": "MERCHANT_TERMINAL_ON_PREMISES",
"panEntryMode": "CONTACTLESS",
"pinEntryCapability": "PIN_NOT_SUPPORTED"
},
"sourceOfFunds": {
"provided": {
"card": {
"emvRequest": {
"5F2A": "036",
"5F34": "099",
"82": "0000",
"84": "010101010101",
"95": "0000000000",
"9A": "161021",
"9B": "0101",
"9C": "00",
"9F02": "000000010000",
"9F03": "000000000000",
"9F10": "06011103A000000A0100000000000BB0ABAD",
"9F1A": "036",
"9F1E": "0123ABCD",
"9F26": "D1F722D47FCA8273",
"9F27": "40",
"9F33": "E0B8C8",
"9F34": "1E0300",
"9F35": "12",
"9F36": "0002",
"9F37": "2A4E1690",
"9F6E": "0101"
},
"expiry": {
"month": "12",
"year": "39"
},
"track2": "400555xxxxxx0019=391220xxxx06711"
}
},
"type": "CARD"
},
"transaction": {
"source": "CARD_PRESENT"
}
}
Puteți trimite această solicitare
- când un card este utilizat pentru prima dată
- la intervale regulate pentru a vă asigura că respectivul card este încă valid sau
- la prima utilizare a unui card după ce este eliminat din lista de respingere.
Prima atingere din perioada de călătorie
Carduri Mastercard sau American Express
Pentru a autoriza plata costului agregat de transport pentru cardul respectiv, trimiteți solicitarea de autorizare cu următoarele detalii.
- un identificator pentru comandă în
order.id - un identificator unic în cadrul comenzii pentru tranzacția de autorizare în
transaction.id - o valoare nominală în
order.amount - moneda comenzii în
order.currency transaction.transit.aggregatedFare.type=FAREtransaction.transit.aggregatedFare.transportationMode with a valid enumeration value that reflects the transportation mode used by the payer for the first triptransaction.transit.aggregatedFare.aggregationStartDatecu o dată de începere validă pentru călătoriesourceOfFunds.provided.card.emvRequestcu date EMV valide de la prima atingere în perioada de călătorietransaction.source=CARD_PRESENTposTerminal.attended=UNATTENDEDposTerminal.location=MERCHANT_TERMINAL_ON_PREMISESposTerminal.cardholderActivated=SELF_SERVICE_TERMINALposTerminal.inputCapability=CONTACTLESS_CHIPposTerminal.panEntryMode=CONTACTLESSposTerminal.pinEntryCapability=PIN_NOT_SUPPORTEDposTerminal.lane=99991111posTerminal.cardPresenceCapability=CARD_PRESENT
Iată un exemplu REST de autorizare nominală pentru agregarea costurilor de transport.
| URL | https://egenius.unicredit.ro/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| Metoda HTTP | PUT |
{
"apiOperation": "AUTHORIZE",
"order": {
"amount": "1.00",
"currency": "AUD"
},
"posTerminal": {
"address": {
"country": "AUS",
"postcodeZip": "4000"
},
"attended": "UNATTENDED",
"cardPresenceCapability": "CARD_PRESENT",
"cardholderActivated": "SELF_SERVICE_TERMINAL",
"inputCapability": "CONTACTLESS_CHIP",
"lane": "99991111",
"location": "MERCHANT_TERMINAL_ON_PREMISES",
"panEntryMode": "CONTACTLESS",
"pinEntryCapability": "PIN_NOT_SUPPORTED"
},
"sourceOfFunds": {
"provided": {
"card": {
"emvRequest": {
"5F2A": "036",
"5F34": "099",
"82": "0000",
"84": "010101010101",
"95": "0000000000",
"9A": "161021",
"9B": "0101",
"9C": "00",
"9F02": "000000010000",
"9F03": "000000000000",
"9F10": "06011103A000000A0100000000000BB0ABAD",
"9F1A": "036",
"9F1E": "0123ABCD",
"9F26": "D1F722D47FCA8273",
"9F27": "40",
"9F33": "E0B8C8",
"9F34": "1E0300",
"9F35": "12",
"9F36": "0002",
"9F37": "2A4E1690",
"9F6E": "0101"
},
"expiry": {
"month": "12",
"year": "39"
},
"track2": "545721xxxxxx0012=391220xxxxx6711"
}
},
"type": "CARD"
},
"transaction": {
"source": "CARD_PRESENT",
"transit": {
"aggregatedFare": {
"type": "FARE",
"aggregationStartDate": "2020-05-05",
"transportationMode": "TRAIN"
}
}
}
"responseControls":{
"sensitiveData": "UNMASK"
}
}
Dacă solicitarea are succes, agregați costul de transport pentru cardul respectiv. Dacă solicitarea eșuează, adăugați cardul pe lista de respingere și inițiați o recuperare a datoriei pentru costul călătoriei respective.
Card Visa
Agregați costul de transport pentru cardul respectiv și asigurați colectarea datelor de atingere pentru călătorie.
Atingerile ulterioare din perioada de călătorie
Carduri Mastercard sau American Express
Adăugați costul de transport pentru fiecare călătorie la costul de transport agregat pentru cardul respectiv. La sfârșitul perioadei de călătorie, trimiteți solicitarea Capture pentru costul total agregat de transport.
Card Visa
Adăugați costul de transport pentru fiecare călătorie la costul de transport agregat pentru cardul respectiv. La sfârșitul perioadei de călătorie, trimiteți solicitarea Authorization pentru costul total agregat de transport. Asigurați colectarea datelor de atingere pentru fiecare călătorie.
Sfârșitul perioadei de călătorie
Carduri Mastercard sau American Express
La sfârșitul perioadei de călătorie, puteți deconta costul total agregat de transport din perioada de călătorie trimițând solicitarea Capture cu următoarele detalii.
- identificatorul comenzii pentru o autorizare efectuată cu succes în order.id.
- un identificator unic al tranzacției în cadrul comenzii pentru tranzacția Capture în transaction.id
- costul total agregat de transport pentru perioada de călătorie respectivă în transaction.amount și
- moneda comenzii, aceeași cu cea din autorizare, în transaction.currency.
Iată un exemplu REST de solicitare Capture pentru costurile de transport agregate.
Nu este necesar să trimiteți din nou detaliile plății în solicitarea Capture, deoarece gateway-ul stochează detaliile de plată pentru fiecare comandă.
| URL | https://egenius.unicredit.ro/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| Metoda HTTP | PUT |
{
"apiOperation": "CAPTURE",
"transaction": {
"amount": "15.00",
"currency": "AUD"
}
}
Plătitorul poate utiliza din nou cardul în următoarea perioadă de călătorie. Există diferite limite pentru suma pe care o puteți deconta și aplica, în funcție de țară. Pentru mai multe informații despre reguli, consultați regulile schemei Mastercard.
Card Visa
La sfârșitul perioadei de călătorie, puteți autoriza costul total agregat de transport din perioada de călătorie trimițând solicitarea Authorization cu următoarele detalii.
- un identificator pentru comandă în câmpul order.id. Puteți trimite această solicitare cu același ID de comandă utilizat pentru solicitarea Verify la prima atingere cu cardul respectiv, sau cu un ID de comandă nou.
- un identificator unic în cadrul comenzii pentru tranzacția de autorizare în transaction.id
- costul total agregat de transport pentru perioada de călătorie respectivă în order.amount
- moneda comenzii în order.currency
- transaction.transit.aggregatedFare.type=FARE
- transaction.transit.aggregatedFare.transportationMode cu o valoare de enumerare validă care reflectă mijlocul de transport utilizat de plătitor la prima călătorie
- transaction.transit.aggregatedFare.aggregationStartDate cu o dată de începere validă pentru călătorie
- sourceOfFunds.provided.card.emvRequest cu date EMV valide de la ultima atingere din perioada călătoriei
- sourceOfFunds.provided.card.sequenceNumber
- transaction.source=CARD_PRESENT
- posTerminal.attended=UNATTENDED
- posTerminal.location=MERCHANT_TERMINAL_ON_PREMISES
- posTerminal.cardholderActivated=SELF_SERVICE_TERMINAL
- posTerminal.inputCapability=CONTACTLESS_CHIP
- posTerminal.panEntryMode=CONTACTLESS
- posTerminal.pinEntryCapability=PIN_NOT_SUPPORTED
- posTerminal.lane=99991111
- posTerminal.cardPresenceCapability=CARD_PRESENT
Iată un exemplu REST de autorizare pentru costul de transport total agregat.
| URL | https://egenius.unicredit.ro/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| Metoda HTTP | PUT |
{
"apiOperation": "AUTHORIZE",
"order": {
"amount": "15.00",
"currency": "AUD"
},
"posTerminal": {
"address": {
"country": "AUS",
"postcodeZip": "4000"
},
"attended": "UNATTENDED",
"cardPresenceCapability": "CARD_PRESENT",
"cardholderActivated": "SELF_SERVICE_TERMINAL",
"inputCapability": "CONTACTLESS_CHIP",
"lane": "99991111",
"location": "MERCHANT_TERMINAL_ON_PREMISES",
"panEntryMode": "CONTACTLESS",
"pinEntryCapability": "PIN_NOT_SUPPORTED"
},
"sourceOfFunds": {
"provided": {
"card": {
"emvRequest": {
"5F2A": "036",
"5F34": "099",
"82": "0000",
"84": "010101010101",
"95": "0000000000",
"9A": "161021",
"9B": "0101",
"9C": "00",
"9F02": "000000010000",
"9F03": "000000000000",
"9F10": "06011103A000000A0100000000000BB0ABAD",
"9F1A": "036",
"9F1E": "0123ABCD",
"9F26": "D1F722D47FCA8273",
"9F27": "40",
"9F33": "E0B8C8",
"9F34": "1E0300",
"9F35": "12",
"9F36": "0002",
"9F37": "2A4E1690",
"9F6E": "0101"
},
"expiry": {
"month": "12",
"year": "39"
},
"track2": "400555xxxxxx0019=391220xxxxx6711"
}
},
"type": "CARD"
},
"transaction": {
"source": "CARD_PRESENT",
"transit": {
"aggregatedFare": {
"type": "FARE",
"aggregationStartDate": "2020-05-05",
"transportationMode": "TRAIN"
}
}
}
}
Dacă solicitarea are succes, trimiteți solicitarea Capture cu următoarele detalii
- identificatorul comenzii pentru o tranzacție Authorization efectuată cu succes în
order.id - un identificator unic al tranzacției în cadrul comenzii pentru tranzacția Capture în
transaction.id - suma autorizată cu succes în
transaction.amount - moneda comenzii, aceeași cu cea din autorizare, în
transaction.currency
Iată un exemplu REST de solicitare Capture pentru costurile de transport agregate.
| URL | https://egenius.unicredit.ro/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| Metoda HTTP | PUT |
{
"apiOperation": "CAPTURE",
"transaction": {
"amount": "15.00",
"currency": "AUD"
}
}
Plătitorul poate utiliza din nou cardul în următoarea perioadă de călătorie. Dacă solicitarea Authorization eșuează, continuați cu scenariul Risc prima călătorie.
Risc prima călătorie
Carduri Mastercard sau American Express
Gateway-ul nu permite încă utilizarea cadrului de lucru Mastercard Risc prima călătorie.
Card Visa
La sfârșitul perioadei de călătorie, dacă autorizarea este respinsă, dar se permite decontarea conform regulilor Visa, trimiteți solicitarea independentă Capture cu următoarele detalii:
- un identificator pentru comanda în câmpul order.id – Acesta trebuie să fie un nou order.id. Nu puteți folosi același order.id ca cel folosit pentru solicitarea Authorize respinsă.
- un identificator unic al tranzacției în cadrul comenzii pentru tranzacția Capture în transaction.id
- suma totală agregată a costurilor de transport, așa cum a fost introdusă în solicitarea Authorization eșuată la order.amount
- moneda comenzii, așa cum a fost introdusă în solicitarea Authorization eșuată la order.currency
- transaction.transit.aggregatedFare.type=FARE
- transaction.transit.aggregatedFare.aggregationStartDate cu o dată validă a primei atingeri
- transaction.transit.aggregatedFare.transportationMode cu o valoare de enumerare validă care reflectă mijlocul de transport utilizat de plătitor la prima călătorie
- sourceOfFunds.provided.card.emvRequest cu date EMV valide de la ultima atingere din perioada călătoriei
- sourceOfFunds.provided.card.sequenceNumber
- transaction.source=CARD_PRESENT
- posTerminal.attended=UNATTENDED
- posTerminal.location= MERCHANT_TERMINAL_ON_PREMISES
- posTerminal.cardholderActivated=SELF_SERVICE_TERMINAL
- posTerminal.inputCapability=CONTACTLESS_CHIP
- posTerminal.panEntryMode=CONTACTLESS
- posTerminal.pinEntryCapability=PIN_NOT_SUPPORTED
- valoarea numerică din 15 cifre returnată în răspunsul de autorizare eșuată în authorizationResponse.transactionIdentifier în câmpul authorizationResponse.transactionIdentifier
- valoarea de 1 literă returnată în răspunsul de autorizare eșuată în câmpul authorizationResponse.returnAci în câmpul authorizationResponse.returnAci
- transaction.authorizationCode=VFT000 – acesta este codul de autorizare definit de Visa în acest scop
Iată un exemplu REST de Standalone Capture pentru costurile de transport agregate.
| URL | https://egenius.unicredit.ro/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| Metoda HTTP | PUT |
{
"apiOperation": "CAPTURE",
"posTerminal": {
"address": {
"country": "AUS",
"postcodeZip": "4000"
},
"attended": "UNATTENDED",
"cardPresenceCapability": "CARD_PRESENT",
"cardholderActivated": "SELF_SERVICE_TERMINAL",
"inputCapability": "CONTACTLESS_CHIP",
"lane": "teapost",
"location": "MERCHANT_TERMINAL_ON_PREMISES",
"panEntryMode": "CONTACTLESS",
"pinEntryCapability": "PIN_NOT_SUPPORTED"
},
"sourceOfFunds": {
"provided": {
"card": {
"emvRequest": {
"5F2A": "036",
"5F34": "099",
"82": "0000",
"84": "010101010101",
"95": "0000000000",
"9A": "161021",
"9B": "0101",
"9C": "00",
"9F02": "000000010000",
"9F03": "000000000000",
"9F10": "06011103A000000A0100000000000BB0ABAD",
"9F1A": "036",
"9F1E": "0123ABCD",
"9F26": "D1F722D47FCA8273",
"9F27": "40",
"9F33": "E0B8C8",
"9F34": "1E0300",
"9F35": "12",
"9F36": "0002",
"9F37": "2A4E1690",
"9F6E": "0101"
},
"expiry": {
"month": "05",
"year": "25"
},
"track2": "400555xxxxxx0019=391220116006711"
}
},
"type": "CARD"
},
"transaction": {
"amount": "8.00",
"currency": "AUD",
"source": "CARD_PRESENT",
"authorizationCode": "VFT000",
"transit": {
"aggregatedFare": {
"type": "FARE",
"aggregationStartDate": "2022-05-05",
"transportationMode": "TRAIN"
}
}
},
"authorizationResponse": {
"transactionIdentifier": "140929101914398",
"returnAci": "Y"
}
}
Decontarea unei autorizări eșuate este permisă conform regulilor Visa dacă:
- emitentul a respins prima solicitare Authorization pentru cardul respectiv
- emitentul a respins prima solicitare Authorization pentru cardul respectiv de la autorizarea anterioară emisă cu succes pentru costuri agregate de transport și
- suma tranzacției este mai mică sau egală cu pragul de rambursare pentru țara respectivă.
După ce ați trimis solicitarea Capture, cardul va fi în continuare pe lista de refuz. Puteți utiliza recuperarea datoriilor inițiată de comerciant pentru a determina dacă cardul a redevenit utilizabil și, prin urmare, ar trebui eliminat din lista de refuz. Trimiteți o solicitare Authorization într-o comandă nouă, cu următoarele detalii:
- order.id – aceasta trebuie să fie o valoare order.id nouă
- transaction.id
- order.amount – aceasta trebuie să fie valoarea din solicitarea Capture independentă.
- moneda în câmpul order.currency
- transaction.transit.aggregatedFare.type=DEBT_RECOVERY_MERCHANT_INITIATED
- transaction.transit.aggregatedFare.transportationMode (obligatoriu) cu o valoare de enumerare validă
- transaction.source=MERCHANT
- transaction.transit.aggregatedFare.aggregationStartDate (obligatoriu) cu o dată validă a primei atingeri
- valoarea numerică din 15 cifre returnată în răspunsul de autorizare eșuată în câmpurile authorizationResponse.transactionIdentifier și transaction.acquirer.customData folosind următoarea sintaxă: {„VisaTransitFailedAuthTransactionIdentifier”:„<value>”}
- detaliile plății, inclusiv numărul cardului, data expirării etc.
Dacă solicitarea Authorization are succes, trebuie să eliminați cardul de pe lista de respingere în interval de o oră și să anulați imediat autorizarea.
Anulare autorizare
Apoi, trebuie să trimiteți o solicitare VOID în WS API pentru comanda pentru care s-a emis cu succes autorizarea, cu:
- order.id – aceasta trebuie să fie valoarea order.id a autorizării efectuate cu succes
- transaction.id – acesta trebuie să fie un ID de tranzacție nou pentru comandă
- transaction.targetTransactionId – aceasta trebuie să fie valoarea transaction.id a autorizării efectuate cu succes
Puteți repeta solicitarea Authorization până la numărul maxim permis de încercări sau cu frecvența pentru solicitări de recuperare a debitelor inițiate de comerciant. Pentru mai multe informații despre recuperarea debitelor inițiată de comerciant, consultați scenariul Recuperare debit de mai jos. Emitentul poartă responsabilitatea pentru solicitarea Capture independentă. Acest lucru înseamnă că o operație Capture efectuată cu succes nu indică faptul că plătitorul are un cont solvabil și cardul poate fi eliminat din lista de respingere.
Recuperarea debitelor inițiată de comerciant
Schemele vă permit să încercați să recuperați debitele scadente pentru costuri de transport fără a implica plătitorul. Recuperarea cu succes a unui debit va determina acceptarea ulterioară a cardului pentru transport odată ce contul plătitorului redevine solvabil.
Pentru a trimite tranzacții de recuperare a debitelor, furnizați detaliile de plată utilizate de plătitor.
- Plată EMV contactless: Furnizați detaliile FPAN.
- Plată mobilă contactless:
- Pentru Mastercard: Furnizați detaliile FPAN. Gateway-ul va adăuga detaliile FPAN în răspunsul la tranzacția originală.
- Pentru card Visa: Furnizați detaliile DPAN. Nu uitați să stocați aceste detalii, deoarece gateway-ul nu vă va permite să le reapelați.
Carduri Mastercard sau American Express
Dacă autorizarea trimisă pentru prima călătorie din perioada de călătorie eșuează, puteți încerca să recuperați costul total al călătoriei, în conformitate cu regulile aplicabile ale schemei Mastercard. Trimiteți o solicitare Authorization cu următoarele detalii:
- un identificator pentru comandă în
order.id– Acesta trebuie să fie un nou order.id. Nu poate fi același order.id cu cel folosit pentru solicitarea VERIFY, solicitarea AUTHORIZE respinsă sau solicitarea CAPTURE. - un identificator unic în cadrul comenzii pentru tranzacția
Authorizationîntransaction.id transaction.transit.aggregatedFare.type=DEBT_RECOVERY_MERCHANT_INITIATEDtransaction.transit.aggregatedFare.transportationModecu o valoare de enumerare validă care reflectă mijlocul de transport utilizat de plătitor la prima călătorietransaction.transit.aggregatedFare.aggregationStartDatecu o dată de începere validă pentru călătorietransaction.source=MERCHANT- detaliile plății, inclusiv numărul FPAN și data expirării FPAN
Iată un exemplu REST de operațiune Authorization pentru costurile de transport agregate, în vederea recuperării debitelor.
| URL | https://egenius.unicredit.ro/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| Metoda HTTP | PUT |
{
"apiOperation": "AUTHORIZE",
"order": {
"amount": "15.00",
"currency": "AUD"
},
"sourceOfFunds": {
"provided": {
"card": {
"expiry": {
"month": "12",
"year": "39"
},
"number": "512345xxxxxx1234",
"sequenceNumber": "099"
}
},
"type": "CARD"
},
"transaction": {
"source": "MERCHANT",
"transit": {
"aggregatedFare": {
"type": "DEBT_RECOVERY_MERCHANT_INITIATED",
"aggregationStartDate": "2020-05-05",
"transportationMode": "TRAIN"
}
}
}
}
Dacă solicitarea are succes, trimiteți solicitarea Capture cu următoarele detalii:
- identificatorul comenzii pentru o tranzacție Authorization efectuată cu succes în order.id.
- un identificator unic al tranzacției în cadrul comenzii pentru tranzacția Capture în transaction.id
- suma autorizată cu succes în transaction.amount
- moneda comenzii, aceeași cu cea din autorizare, în transaction.currency.
Iată un exemplu REST de operațiune Capture pentru costurile de transport agregate, în vederea recuperării debitelor.
| URL | https://egenius.unicredit.ro/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| Metoda HTTP | PUT |
{
"apiOperation": "CAPTURE",
"transaction": {
"amount": "15.00",
"currency": "AUD"
}
}
După recuperarea cu succes a debitului, scoateți cardul din lista de respingere. Tranzacția Authorization pentru recuperarea debitului va avea succes numai dacă plătitorul are suficiente fonturi în cont. Emitenții nu își asumă răspunderea pentru tranzacțiile de recuperare a debitelor. Dacă solicitarea Authorization eșuează, o puteți încerca din nou, în conformitate cu regulile aplicabile ale schemei Mastercard. Mastercard definește suma permisă pentru tranzacțiile de recuperare a debitelor și frecvența încercărilor de recuperare a debitelor. Suma permisă trebuie să fie mai mică sau egală cu pragul maxim definit de Mastercard pentru tranzacțiile contactless agregate de transport. Nu trebuie să încercați recuperarea debitelor dacă aveți informații suficiente pentru a determina că solicitarea Authorization pentru prima călătorie din perioada de călătorie a fost respinsă deoarece cardul a fost pierdut sau furat – mai exact, dacă respingerea a fost una categorică. Nu puteți recupera fondurile în caz de pierdere sau furt al cardului, respectiv dacă a avut loc o respingere categorică sau toate tentativele permise de recuperare a debitului au eșuat.
Card Visa
Dacă nu ați trimis solicitarea Capture independentă, puteți încerca să recuperați costurile în conformitate cu regulile aplicabile ale schemei Visa. Pentru mai multe informații despre prima tranzacție respinsă pentru cardul Visa Contactless până la limita definită de răspundere partajată pentru tranzacții de mobilitate și transport, consultați scenariul Risc prima călătorie.
Trimiteți o solicitare Authorization cu următoarele detalii:
- un identificator pentru comandă în câmpul order.id – Acesta trebuie să fie un nou order.id. Nu poate fi același order.id cu cel folosit pentru solicitarea VERIFY, solicitarea AUTHORIZE respinsă sau solicitarea CAPTURE
- un identificator unic în cadrul comenzii pentru tranzacția de autorizare respectivă în
transaction.id transaction.source=MERCHANTtransaction.transit.aggregatedFare.type=DEBT_RECOVERY_MERCHANT_INITIATEDtransaction.transit.aggregatedFare.transportationModecu o valoare de enumerare validă care reflectă mijlocul de transport utilizat de plătitor la prima călătorietransaction.transit.aggregatedFare.aggregationStartDatecu o dată de începere validă pentru călătorie- valoarea numerică din 15 cifre returnată în răspunsul de autorizare eșuată în câmpurile
authorizationResponse.transactionIdentifier and the transaction.acquirer.customData, folosind următoarea sintaxă: {„VisaTransitFailedAuthTransactionIdentifier”:„<value>”} - detaliile de plată, inclusiv fie FPAN și data de expirare a FPAN, dacă tranzacția inițială a fost o plată EMV contactless, sau DPAN și data de expirare a DPAN dacă tranzacția inițială a fost o plată mobilă contactless
Iată un exemplu REST de operațiune Authorization pentru costurile de transport agregate, în vederea recuperării debitelor.
| URL | https://egenius.unicredit.ro/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| Metoda HTTP | PUT |
{
"apiOperation": "AUTHORIZE",
"order": {
"amount": "15.00",
"currency": "AUD"
},
"sourceOfFunds": {
"provided": {
"card": {
"expiry": {
"month": "12",
"year": "39"
},
"number": "400555xxxxxx0019",
"sequenceNumber": "099"
}
},
"type": "CARD"
},
"transaction": {
"source": "MERCHANT",
"transit": {
"aggregatedFare": {
"type": "DEBT_RECOVERY_MERCHANT_INITIATED",
"aggregationStartDate": "2020-05-05",
"transportationMode": "TRAIN"
}
}
}
}
Dacă solicitarea are succes, trimiteți solicitarea Capture cu următoarele detalii:
- identificatorul comenzii pentru o tranzacție Authorization efectuată cu succes în
order.id - un identificator unic al tranzacției în cadrul comenzii pentru tranzacția Capture în
transaction.id - suma autorizată cu succes în
transaction.amount - moneda comenzii, aceeași cu cea din autorizare, în
transaction.currency
Iată un exemplu REST de operațiune Capture pentru costurile de transport agregate, în vederea recuperării debitelor.
| URL | https://egenius.unicredit.ro/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| Metoda HTTP | PUT |
{
"apiOperation": "CAPTURE",
"transaction": {
"amount": "15.00",
"currency": "AUD"
}
}
După recuperarea cu succes a debitului conform regulilor Visa, trebuie să eliminați cardul de pe lista de respingere în interval de o oră de la primirea aprobării de autorizare. Dacă solicitarea Authorization eșuează, o puteți încerca din nou, în conformitate cu regulile aplicabile ale schemei Visa. Visa definește numărul maxim permis de încercări de recuperare a debitelor.
Recuperarea debitelor inițiată de plătitor
Acest scenariu se aplică pentru Mastercard, Visa și American Express. Pentru plata inițiată de plătitor a debitelor, nu trebuie să completați niciun câmp din grupul de parametri transaction.transit. Tranzacția de recuperare a debitului inițiată de plătitor va fi tratată ca o tranzacție normală, în care plătitorul face o achiziție de la comerciant.
Recuperarea debitelor inițiată prin atingere
Acest scenariu se aplică pentru Mastercard, Visa și American Express.
Pentru plata inițiată prin atingere a debitelor, nu trebuie să completați niciun câmp din grupul de parametri transaction.transit. Tranzacția de recuperare a debitului inițiată prin atingere va fi tratată ca o tranzacție normală, în care plătitorul face o achiziție de la comerciant.
Testarea integrării
Pentru informații despre testarea integrării, contactați reprezentantul contului dvs.