Prehľad platobného procesu
Úvod
TrustPay Merchant API (platobná služba) je internetový platobný nástroj, ktorý môžu obchodníci používať na prijímanie platieb od klientov. Vďaka integrácii tejto služby môžu obchodníci spracovávať okamžité bankové prevody aj platby kartou.
API koncový bod:
Live -https://amapi.trustpay.eu/
Na testovacie účely prosím použite ten istý API koncový bod s testovacími prihlasovacími údajmi.
Platobný proces
- Stránka obchodníka obsahuje IFrame, do ktorého sa načíta platobná brána TrustPay. Týmto sa tiež vytvorí platba v TrustPay. Keď sa používateľ rozhodne platiť prostredníctvom TrustPay, platobná brána sa zobrazí ako vyskakovacie okno.
- Pre okamžité bankové prevody si klient vyberie svoju banku na platobnej bráne TrustPay a uskutoční platbu vo svojej banke. V prípade platieb kartou, klient platí priamo na platobnej bráne TrustPay, a to zadaním údajov o svojej karte.
- Po dokončení platby, TrustPay príslušne presmeruje klienta na success, error alebo cancel URL. Tieto adresy URL je možné nakonfigurovať na Obchodníckom portáli TrustPay v časti Technické nastavenia.
- TrustPay informuje obchodníka o úspešnej platbe pomocou notifikačného URL alebo e-mailovej adresy, ktorá je nakonfigurovaná na Obchodníckom portáli TrustPay v časti Technické nastavenia.
Spracovanie platieb
Okamžité bankové prevody
Nastavenie platby v02
API koncový bod:
Live -https://amapi.trustpay.eu/mapi5/wire/paypopup
Na testovacie účely prosím použite ten istý API koncový bod s testovacími prihlasovacími údajmi.
Príklad HTML :
<script type="text/javascript" src="https://mapi.trustpay.eu/mapi5/Scripts/TrustPay/popup.js"></script> <iframe id="TrustPayFrame" src="https://amapi.trustpay.eu/mapi5/wire/paypopup?accountId=4107111111..."></iframe> <a href="#" class="show-popup">Pay via TrustPay</a>
Implementácia obchodníka musí na svojej stránke obsahovať odkaz na Merchant API JavaScript a načítať platobnú bránu TrustPay vo vnútri IFrame. Obsiahnutý JavaScript upraví IFrame tak, aby bol skrytý. Obsahuje tiež kód potrebný na zobrazenie platobnej brány zo skrytého IFrame ako vyskakovacie okno prekrývajúce e-shop obchodníka. Aby mohli používatelia zobraziť vyskakovacie okno platobnej brány, musí obchodník niekde na svojej stránke zahrnúť nejaký odkaz/tlačidlo/atď. s triedou CSS „show-popup“ („zobraziť vyskakovacie okno“). Správca udalosti Onclick, ktorá zobrazuje vyskakovacie okno, sa automaticky pridá k tomuto prvku. Pozrite si príklad vpravo.
URL IFrame by mala obsahovať nasledujúce parametre:
Príklad nastavenia platby:
public string GetSetUpPaymentUrl() { string baseUrl = "https://amapi.trustpay.eu/mapi5/wire/paypopup"; long accountId = 4107111111; decimal amount = 1.5M; string currency = "EUR"; string reference = "123456789"; string notificationUrl = "https://example.handler.com/result.php"; int paymentType = 0; string secretKey = "123456"; string sigData = string.Format( CultureInfo.InvariantCulture, "{0}/{1:0.00}/{2}/{3}/{4}", accountId, amount, currency, reference, paymentType); string signature = GetSignature(secretKey, sigData); string url = string.Format( CultureInfo.InvariantCulture, "{0}?AccountId={1}&Amount={2:0.00}&Currency={3}&Reference={4}&NotificationUrl={5}&PaymentType={6}&Signature={7}", baseUrl, accountId, amount, currency, HttpUtility.UrlEncode(reference), HttpUtility.UrlEncode(notificationUrl), paymentType, signature); Response.Redirect(url); }
function getSetUpPaymentUrl() { $baseUrl = "https://amapi.trustpay.eu/mapi5/wire/paypopup"; $accountId = 4107111111; $amount = 1.5; $currency = "EUR"; $reference = "123456789"; $notificationUrl = "https://example.handler.com/result.php"; $paymentType = 0; $secretKey = "123456"; $sigData = sprintf("%d/%s/%s/%s/%d", $accountId, number_format($amount, 2, '.', ''), $currency, $reference, $paymentType); $signature = GetSignature($secretKey, $sigData); $url = sprintf( "%s?AccountId=%d&Amount=%s&Currency=%s&Reference=%s&NotificationUrl=%s&PaymentType=%d&Signature=%s", $baseUrl, $accountId, number_format($amount, 2, '.', ''), $currency, urlencode($reference), urlencode($notificationUrl), $paymentType, $signature); return $url; }
import java.util.Locale; import java.net.URLEncoder; public String GetSetUpPaymentUrl() { String baseUrl = "https://amapi.trustpay.eu/mapi5/wire/paypopup"; long accountId = 4107111111; double amount = 1.5d; String currency = "EUR"; String reference = "123456789"; String notificationUrl = "https://example.handler.com/result.php"; int paymentType = 0; try { String secretKey = "123456"; String sigData = String.format(Locale.ROOT, "%d/%.2f/%s/%s/%d", accountId, amount, currency, reference, paymentType); String signature = GetSignature(secretKey, sigData); String url = String.format( Locale.ROOT,"%s?AccountId=%d&Amount=%.2f&Currency=%s&Reference=%s&NotificationUrl=%s&PaymentType=%d&Signature=%s", baseUrl, accountId, amount, currency, URLEncoder.encode(reference, "UTF-8"), URLEncoder.encode(notificationUrl, "UTF-8"), paymentType, signature); return url; }catch(Exception ex){} }
Názov | Popis | Formát | Požadované |
---|---|---|---|
AccountId | Obchodnícky účet alebo ID projektu (ID účtu alebo projektu prideleného spoločnosťou TrustPay) | Numeric(10) | Áno |
Amount | Výška platby (presne na 2 desatinné miesta) | Numeric(13,2) en-US format |
Áno |
Currency | Mena platby (rovnaká ako mena obchodníckeho účtu) | Char(3) | Áno |
Reference | Referencia (identifikácia platby obchodníka) | Varchar(35)1 | Áno |
PaymentType |
Typ platby Pre nákup musí byť nastavené na 0 | Numeric(1) | Áno |
Signature | Dátový podpis vypočítaný zo zreťazených hodnôt parametrov AccountId, Amount, Currency, Reference a PaymentType, ak sú tieto parametre k dispozícii. Ako oddeľovač sa používa lomítko („/“). | Char(64) | Áno |
Url | Spätná (Return) URL (prepíše akékoľvek predvolené Spätné (Return) URL, možno ju ďalej prepísať Return URL, Cancel URL, Error URL) | Varchar(256) | Nie |
ReturnUrl | Return URL (prepíše predvolenú Succes Return URL ) | Varchar(256) | Nie |
CancelUrl | Cancel URL (prepíše predvolenú Cancel Return URL) | Varchar(256) | Nie |
ErrorUrl | Error URL (prepíše predvolenú Error URL) | Varchar(256) | Nie |
NotificationUrl | Notifikačná URL (prepíše predvolenú notifikačnú URL) | Varchar(256) | Nie |
Localization | Predvolený jazyk pre stránku TrustPay | Char(2) | Nie |
Country | Predvolená krajina klienta | Char(2) | Nie |
Description | Popis (text popisu platby, ktorý sa zobrazí používateľovi) | Varchar(140) | Nie |
E-mail zákazníka | Varchar(254) | Nie | |
IsRedirect | Umožňuje redirect z e-shopu | Bool2 | Nie |
1 Referencia nemôže obsahovať znaky < a >
2 Iba hodnoty True alebo False.
Výsledok platby v02
Po zaplatení je zákazník presmerovaný na jednu z Return URL adries poskytnutých obchodníkom:
-
Success Return URL
Zákazník je sem presmerovaný v prípade oznámenej, autorizovanej alebo úspešnej platby s výsledkom = 0 alebo v prípade, že vypršal časový limit čakajúci na platbu s ResultCode = 1 -
Cancel Return URL
Zákazník je sem presmerovaný v prípade, že sa rozhodne zrušiť platbu s ResultCode = 1005. -
Error Return URL
Zákazník je sem presmerovaný v prípade neúspešnej alebo odmietnutej platby s ResultCode > = 1000 a ResultCode! = 1005.
S presmerovaniami sa vždy odosielajú tieto parametre:
Príklad výsledku platby:
https://example.handler.com/result.php?Reference=1234567890&ResultCode=0&PaymentRequestId=4337417657
Názov | Popis | Formát |
---|---|---|
Reference | Referencia (identifikácia platby obchodníka) | Varchar(500) |
ResultCode | Kód výsledku | Numeric(4) |
PaymentRequestId | ID žiadosti o platbu (odosielané keď je k dispozícii, je možné ho použiť pri otázkach týkajúcich sa neúspešných platieb) | Numeric(10) |
Vrátenie platby v02
API koncový bod:
Live -https://amapi.trustpay.eu/mapi5/wire/paypopup
Na testovacie účely prosím použite ten istý API koncový bod s testovacími prihlasovacími údajmi.
Príklad vrátenia platby:
string baseUrl = "https://amapi.trustpay.eu/mapi5/Wire/PayPopup"; long accountId = 4107111111; decimal amount = 1.5M; string currency = "EUR"; string reference = "123456789"; int paymentType = 8; int paymentRequestId = 555; string secretKey = "123456"; string sigData = string.Format( CultureInfo.InvariantCulture, "{0}/{1:0.00}/{2}/{3}/{4}/{5}/{6}", accountId, amount, currency, reference, paymentType, paymentRequestId); string signature = GetSignature(secretKey, sigData); string url = string.Format( CultureInfo.InvariantCulture, "{0}?AccountId={1}&Amount={2:0.00}&Currency={3}&Reference={4}&Signature={5}&PaymentType={6}&PaymentRequestId={7}", baseUrl, accountId, amount, currency, HttpUtility.UrlEncode(reference), signature, paymentType, paymentRequestId); Response.Redirect(url);
$baseUrl = "https://amapi.trustpay.eu/mapi5/Wire/PayPopup"; $accountId = 4107111111; $amount = 1.5; $currency = "EUR"; $reference = "123456789"; $paymentType = 8; $paymentRequestId = 555; $secretKey = "123456"; $sigData = sprintf("%d/%s/%s/%s/%d/%d", $accountId, number_format($amount, 2, '.', ''), $currency, $reference, $paymentType, $paymentRequestId); $signature = GetSignature($secretKey, $sigData); $url = sprintf( "%s?AccountId=%d&Amount=%s&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d&PaymentRequestId=%s", $baseUrl, $accountId, number_format($amount, 2, '.', ''), $currency, urlencode($reference), $signature, $paymentType, $paymentRequestId); header("Location: $url"); exit();
import java.util.Locale; import java.net.URLEncoder; String baseUrl = "https://amapi.trustpay.eu/mapi5/Wire/PayPopup"; long accountId = 4107111111; double amount = 1.5d; String currency = "EUR"; String reference = "123456789"; int paymentType = 8; int paymentRequestId = 555; try { String secretKey = "123456"; String sigData = String.format(Locale.ROOT, "%d/%.2f/%s/%s/%d/%d", accountId, amount, currency, reference, paymentType, paymentRequestId); String signature = GetSignature(secretKey, sigData); String url = String.format( Locale.ROOT,"%s?AccountId=%d&Amount=%.2f&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d&PaymentRequestId=%s", baseUrl, accountId, amount, currency, URLEncoder.encode(reference, "UTF-8"), signature, paymentType, paymentRequestId); response.sendRedirect(url); }catch(Exception ex){}
Táto funkcia umožňuje vrátenie platby..
Parametre sú rovnaké ako pri štandardnom nákupe, ale k žiadosti je potrebné pridať tieto ďalšie parametre:
Názov | Popis | Formát | Požadované |
---|---|---|---|
PaymentType |
Typ platby Pre vrátenie platby musí byť nastavené na 8 |
Numeric(1) | Áno |
PaymentRequestId | PaymentRequestId z notifikácie o pôvodnej platbe | Numeric(10) | Áno |
Signature | Dátový podpis vypočítaný zo zreťazených hodnôt parametrov AccountId (ID účtu), Amount (suma), Currency (mena), Reference (referencia), PaymentType (typ platby) a PaymentRequestId (ID žiadosti o platbu), ak sú tieto parametre k dispozícii. Ako oddeľovač sa používa lomítko („/“). | Char(64) | Áno |
Telo odpovede HTTP bude obsahovať kód výsledku (pozri príklad odpovede vpravo).
Príklad odpovede:
{ "ResultCode": 0 }
Platby kartou
Platby kartou Visa a MasterCard fungujú podobným spôsobom ako okamžité bankové prevody, pričom rozdiely sú popísané v tejto kapitole.
Notifikácie o úspešnosti sa odosielajú s kódom výsledku (ResultCode) 3 - autorizovaný, čo tiež znamená, že platba bola úspešná. Všetky platby v dohodnutom období budú prevedené na váš účet TrustPay neskôr v rámci jednej transakcie. Nebudete dostávať žiadne ďalšie notifikácie týkajúce sa jednotlivých kartových transakcií.
Skúšobné karty v02
Keď skúšate svoju implementáciu v mapi prostredí s testovacími prihlasovacími údajmmi, na vykonanie simulovaných platieb môžete použiť tieto skúšobné karty:
Číslo karty | Výsledok pri použití tejto karty |
---|---|
4200 0000 0000 0000 4200 0000 0000 1234 4200 0000 0000 5555 |
Platba je úspešná |
4200 0000 0000 0001 | Platba zlyhá s výsledkom vypršanej platnosti karty |
4200 0000 0000 0002 | Platba zlyhá s výsledkom prekročeného limitu karty |
4200 0000 0000 0003 | Platba zlyhá s výsledkom zlyhania pri overovaní 3DS |
4200 0000 0000 0004 | Platba zlyhá s výsledkom nedostatku finančných prostriedkov |
4200 0000 0000 0005 | Platba zlyhá s výsledkom neplatného CVV |
4200 0000 0000 0006 | Platba zlyhá s výsledkom neplatného dátumu skončenia platnosti |
4200 0000 0000 0007 | Platba zlyhá s výsledkom príliš veľa neúspšných pokusov |
Akékoľvek iné číslo karty | Platba zlyhá s výsledkom neplatného čísla karty |
Nákup v02
API koncový bod:
Live -https://amapi.trustpay.eu/mapi5/Card/PayPopup
Na testovacie účely prosím použite ten istý API koncový bod s testovacími prihlasovacími údajmi.
Príklad HTML kódu:
<script type="text/javascript" src="https://mapi.trustpay.eu/mapi5/Scripts/TrustPay/popup.js"></script> <iframe id="TrustPayFrame" src="https://amapi.trustpay.eu/mapi5/Card/PayPopup?accountId=4107111111..."></iframe> <a href="#" class="show-popup">Pay via TrustPay</a>
Implementácia obchodníka musí na svojej stránke obsahovať odkaz na Merchant API JavaScript a načítať platobnú bránu TrustPay vo vnútri IFrame. Obsiahnutý JavaScript upraví IFrame tak, aby bol skrytý. Obsahuje tiež kód potrebný na zobrazenie platobnej brány zo skrytého IFrame ako vyskakovacie okno prekrývajúce e-shop obchodníka. Aby mohli používatelia zobraziť vyskakovacie okno platobnej brány, musí obchodník niekde na svojej stránke zahrnúť nejaký odkaz/tlačidlo/atď. s triedou CSS „show-popup“ („zobraziť vyskakovacie okno“). Správca udalosti Onclick, ktorá zobrazuje vyskakovacie okno, sa automaticky pridá k tomuto prvku. Pozrite si príklad vpravo.
URL IFrame by mala obsahovať nasledujúce parametre:
Príklad nastavenia platby:
public string GetPurchaseUrl() { string baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; decimal amount = 1.5M; string billingcity = "Bratislava"; string billingcountry = "SK"; string billingpostcode = "83103"; string billingstreet = "Za kasarnou 1"; string cardholder = "TrustPay"; string currency = "EUR"; string email = "info@trustpay.eu"; string reference = "123456789"; int paymentType = 0; string secretKey = "123456"; string sigData = string.Format( CultureInfo.InvariantCulture, "{0}/{1:0.00}/{2}/{3}/{4}/{5}/{6}/{7}/{8}/{9}/{10}", accountId, amount, currency, reference, paymentType, billingcity, billingcountry, billingpostcode, billingstreet, cardholder, email); string signature = GetSignature(secretKey, sigData); string url = string.Format( CultureInfo.InvariantCulture, "{0}?AccountId={1}&Amount={2:0.00}&Currency={3}&Reference={4}&PaymentType={5}&Signature={6}&BillingCity={7}&BillingCountry={8}&BillingPostcode={9}&BillingStreet={10}&CardHolder={11}&Email={12}", baseUrl, accountId, amount, currency, HttpUtility.UrlEncode(reference), paymentType, signature, billingcity, billingcountry, billingpostcode, billingstreet, cardholder, email); return url; }
function getPurchaseUrl() { $baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; $accountId = 4107111111; $amount = 1.5; $billingcity = "Bratislava"; $billingcountry = "SK"; $billingpostcode = "83103"; $billingstreet = "Za kasarnou 1"; $cardholder = "TrustPay"; $currency = "EUR"; $email = "info@trustpay.eu"; $reference = "123456789"; $paymentType = 0; $secretKey = "123456"; $sigData = sprintf("%d/%s/%s/%s/%d/%s/%s/%s/%s/%s/%s", $accountId, number_format($amount, 2, '.', ''), $currency, $reference, $paymentType, $billingcity, $billingcountry, $billingpostcode, $billingstreet, $cardholder, $email); $signature = GetSignature($secretKey, $sigData); $url = sprintf( "%s?AccountId=%d&Amount=%s&Currency=%s&Reference=%s&PaymentType=%d&Signature=%s&BillingCity=%s&BillingCountry=%s&BillingPostcode=%s&BillingStreet=%s&CardHolder=%s&Email=%s", $baseUrl, $accountId, number_format($amount, 2, '.', ''), $currency, urlencode($reference), $paymentType, $signature, $billingcity, $billingcountry, $billingpostcode, $billingstreet, $cardholder, $email); return $url; }
import java.util.Locale; import java.net.URLEncoder; public String GetPurchaseUrl() { String baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; double amount = 1.5d; String billingcity = "Bratislava"; String billingcountry = "SK"; String billingpostcode = "83103"; String billingstreet = "Za kasarnou 1"; String cardholder = "TrustPay"; String currency = "EUR"; String email = "info@trustpay.eu"; String reference = "123456789"; int paymentType = 0; try { String secretKey = "123456"; String sigData = String.format(Locale.ROOT, "%d/%.2f/%s/%s/%d/%s/%s/%s/%s/%s/%s", accountId, amount, currency, reference, paymentType, billingcity, billingcountry, billingpostcode, billingstreet, cardholder, email); String signature = GetSignature(secretKey, sigData); String url = String.format( Locale.ROOT,"%s?AccountId=%d&Amount=%.2f&Currency=%s&Reference=%s&PaymentType=%d&Signature=%s&BillingCity=%s&BillingCountry=%s&BillingPostcode=%s&BillingStreet=%s&CardHolder=%s&Email=%s", baseUrl, accountId, amount, currency, URLEncoder.encode(reference, "UTF-8"), paymentType, signature, billingcity, billingcountry, billingpostcode, billingstreet, cardholder, email); return url; }catch(Exception ex){} }
Názov | Popis | Formát | Požadované |
---|---|---|---|
AccountId | Obchodnícky účet alebo ID projektu (ID účtu alebo projektu prideleného spoločnosťou TrustPay) | Numeric(10) | Áno |
Amount | Výška platby (presne na 2 desatinné miesta) | Numeric(13,2) en-US format |
Áno |
BillingCity | Mesto fakturačnej adresy zákazníka | Varchar(80) | Áno, od 1.10.2020 |
BillingCountry | Krajina fakturačnej adresy zákazníka (v ISO-3166 formáte) | Char(2) | Áno, od 1.10.2020 |
BillingPostcode | Poštové smerovacie číslo alebo PSČ fakturačnej adresy zákazníka | Varchar(30)1 | Áno, od 1.10.2020 |
BillingStreet | Ulica a číslo fakturačnej adresy zákazníka | Varchar(100) | Áno, od 1.10.2020 |
CardHolder | Meno držiteľa karty (minimálne 3 znaky) | Varchar(3-140) | Áno, od 1.10.2020 |
Currency | Mena platby | Char(3) | Áno |
E-mail zákazníka | Varchar(254) | Áno, od 1.10.2020 | |
PaymentType |
Typ platby Pre nákup musí byť nastavený na 0 |
Numeric(1) | Áno |
Reference | Referencia (identifikácia platby obchodníka) | Varchar(35)1 | Áno |
Signature | Dátový podpis vypočítaný zo zreťazených hodnôt parametrov AccountId, Amount, Currency, Reference, PaymentType, BillingCity, BillingCountry, BillingPostcode, BillingStreet, CardHolder a Email, ak sú tieto parametre k dispozícii. Ako oddeľovač sa používa lomítko („/“). | Char(64) | Áno |
Url | Spätná (Return) URL (prepíše akékoľvek predvolené Spätné (Return) URL, možno ju ďalej prepísať Return URL, Cancel URL, Error URL) | Varchar(256) | Nie |
ReturnUrl | Return URL (prepíše predvolenú Succes Return URL ) | Varchar(256) | Nie |
CancelUrl | Cancel URL (prepíše predvolenú Cancel Return URL) | Varchar(256) | Nie |
ErrorUrl | Error URL (prepíše predvolenú Error URL) | Varchar(256) | Nie |
NotificationUrl | Notifikačná URL (prepíše predvolenú notifikačnú URL) | Varchar(256) | Nie |
Localization | Predvolený jazyk pre stránku TrustPay | Char(2) | Nie |
Country | Predvolená krajina klienta | Char(2) | Nie |
Description | Popis (text popisu platby, ktorý sa zobrazí používateľovi) | Varchar(140)2 | Nie |
IsRedirect | Umožňuje redirect z e-shopu | Bool3 | Nie |
1 Povolené sú iba alfanumerické znaky. Počas procesu platby sa môžu stratiť alebo zmeniť ďalšie znaky.
2 Povolené sú iba alfanumerické znaky a znaky medzier. Ostatné znaky sa nemusia zobraziť správne.
3 Iba hodnoty True alebo False.
Uložená karta (Card on File) v02
API koncový bod:
Live -https://amapi.trustpay.eu/mapi5/Card/PayPopup
Na testovacie účely prosím použite ten istý API koncový bod s testovacími prihlasovacími údajmi.
Funkcia zaevidovanej karty umožňuje obchodníkom ukladať tokeny karty do svojich systémov bez ukladania akýchkoľvek citlivých údajov o karte (číslo karty, dátum exspirácie, CVV kód) a tieto tokeny následne používať na spracovanie platieb bez toho, aby klient (držiteľ karty) musel pri ďalších nákupoch zadávať akékoľvek údaje o karte.
Registrácia
Príklad registrácie:
public string GetRegisterUrl() { string baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; decimal amount = 1.5M; string currency = "EUR"; string reference = "123456789"; int paymentType = 1; string secretKey = "123456"; string sigData = string.Format( CultureInfo.InvariantCulture, "{0}/{1:0.00}/{2}/{3}/{4}", accountId, amount, currency, reference, paymentType); string signature = GetSignature(secretKey, sigData); string url = string.Format( CultureInfo.InvariantCulture, "{0}?AccountId={1}&Amount={2:0.00}&Currency={3}&Reference={4}&Signature={5}&PaymentType={6}", baseUrl, accountId, amount, currency, HttpUtility.UrlEncode(reference), signature, paymentType); return url; }
function getRegisterUrl() { $baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; $accountId = 4107111111; $amount = 1.5; $currency = "EUR"; $reference = "123456789"; $paymentType = 1; $secretKey = "123456"; $sigData = sprintf("%d/%s/%s/%s/%d", $accountId, number_format($amount, 2, '.', ''), $currency, $reference, $paymentType); $signature = GetSignature($secretKey, $sigData); $url = sprintf( "%s?AccountId=%d&Amount=%s&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d", $baseUrl, $accountId, number_format($amount, 2, '.', ''), $currency, urlencode($reference), $signature, $paymentType); return $url; }
import java.util.Locale; import java.net.URLEncoder; public String GetRegisterUrl() { String baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; double amount = 1.5d; String currency = "EUR"; String reference = "123456789"; int paymentType = 1; try { String secretKey = "123456"; String sigData = String.format(Locale.ROOT, "%d/%.2f/%s/%s/%d", accountId, amount, currency, reference, paymentType); String signature = GetSignature(secretKey, sigData); String url = String.format( Locale.ROOT,"%s?AccountId=%d&Amount=%.2f&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d", baseUrl, accountId, amount, currency, URLEncoder.encode(reference, "UTF-8"), signature, paymentType); return url; }catch(Exception ex){} }
Ak chcete zaregistrovať kartu pre neskoršie nákupy touto metódou, prvý nákup musíte vykonať podobne ako pri štandardnom nákupe, je však potrebný uviesť tento dodatočný parameter:
Názov | Popis | Formát | Požadované |
---|---|---|---|
PaymentType |
Typ platby Pre Card on File registráciu musí byť nastavená na 1 |
Numeric(1) | Áno |
CardID
Parameter bude uvedený v notifikácii potom, ako klient dokončí nákup. Hodnota tohto parametra musí byť použitá na uskutočnenie ďalších nákupov zaevidovanou kartou.
Nákup uloženou kartou
Príklad nákupu uloženou kartou:
public string GetCardOnFilePurchaseUrl() { string baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; decimal amount = 1.5M; string currency = "EUR"; string reference = "123456789"; int paymentType = 2; string cardId = "8a8394855cfd3692015d0dc3f793355b"; string secretKey = "123456"; string sigData = string.Format( CultureInfo.InvariantCulture, "{0}/{1:0.00}/{2}/{3}/{4}/{5}/{6}", accountId, amount, currency, reference, paymentType, cardId); string signature = GetSignature(secretKey, sigData); string url = string.Format( CultureInfo.InvariantCulture, "{0}?AccountId={1}&Amount={2:0.00}&Currency={3}&Reference={4}&Signature={5}&PaymentType={6}&CardId={7}", baseUrl, accountId, amount, currency, HttpUtility.UrlEncode(reference), signature, paymentType, cardId); return url; }
function getCardOnFilePurchaseUrl() { $baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; $accountId = 4107111111; $amount = 1.5; $currency = "EUR"; $reference = "123456789"; $paymentType = 2; $cardId = "8a8394855cfd3692015d0dc3f793355b"; $secretKey = "123456"; $sigData = sprintf("%d/%s/%s/%s/%d/%s", $accountId, number_format($amount, 2, '.', ''), $currency, $reference, $paymentType, $cardId); $signature = GetSignature($secretKey, $sigData); $url = sprintf( "%s?AccountId=%d&Amount=%s&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d&CardId=%s", $baseUrl, $accountId, number_format($amount, 2, '.', ''), $currency, urlencode($reference), $signature, $paymentType, $cardId); return $url; }
import java.util.Locale; import java.net.URLEncoder; public String GetCardOnFilePurchaseUrl() { String baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; double amount = 1.5d; String currency = "EUR"; String reference = "123456789"; int paymentType = 2; String cardId = "8a8394855cfd3692015d0dc3f793355b"; try { String secretKey = "123456"; String sigData = String.format(Locale.ROOT, "%d/%.2f/%s/%s/%d/%s", accountId, amount, currency, reference, paymentType, cardId); String signature = GetSignature(secretKey, sigData); String url = String.format( Locale.ROOT,"%s?AccountId=%d&Amount=%.2f&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d&CardId=%s", baseUrl, accountId, amount, currency, URLEncoder.encode(reference, "UTF-8"), signature, paymentType, cardId); return url; }catch(Exception ex){} }
Parametre pre nákup uloženou kartou sú rovnaké ako pre štandardnú platbu, k žiadosti je však potrebné pridať tieto dodatočné parametre:
Názov | Popis | Formát | Požadované |
---|---|---|---|
PaymentType |
Typ platby Pre nákup uloženou kartou musí byť nastavené 2 |
Numeric(1) | Áno |
CardId | CardID z notifikácie | Varchar(64) | Nie |
Signature | Dátový podpis vypočítaný zo zreťazených hodnôt parametrov AccountId, Amount, Currency, Reference, PaymentType (typ platby), BillingCity, BillingCountry, BillingPostcode, BillingStreet, CardHolder, Email a CardId (ID karty), ak sú tieto parametre k dispozícii. Ako oddeľovač sa používa lomítko („/“). | Char(64) | Áno |
Predautorizácia uloženej karty
Príklad predautorizácie uloženej karty:
public string GetCardOnFilePreauthorizationUrl() { string baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; decimal amount = 1.5M; string currency = "EUR"; string reference = "123456789"; int paymentType = 9; string cardId = "8a8394855cfd3692015d0dc3f793355b"; string secretKey = "123456"; string sigData = string.Format( CultureInfo.InvariantCulture, "{0}/{1:0.00}/{2}/{3}/{4}/{5}/{6}", accountId, amount, currency, reference, paymentType, cardId); string signature = GetSignature(secretKey, sigData); string url = string.Format( CultureInfo.InvariantCulture, "{0}?AccountId={1}&Amount={2:0.00}&Currency={3}&Reference={4}&Signature={5}&PaymentType={6}&CardId={7}", baseUrl, accountId, amount, currency, HttpUtility.UrlEncode(reference), signature, paymentType, cardId); return url; }
function getCardOnFilePreauthorizationUrl() { $baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; $accountId = 4107111111; $amount = 1.5; $currency = "EUR"; $reference = "123456789"; $paymentType = 9; $cardId = "8a8394855cfd3692015d0dc3f793355b"; $secretKey = "123456"; $sigData = sprintf("%d/%s/%s/%s/%d/%s", $accountId, number_format($amount, 2, '.', ''), $currency, $reference, $paymentType, $cardId); $signature = GetSignature($secretKey, $sigData); $url = sprintf( "%s?AccountId=%d&Amount=%s&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d&CardId=%s", $baseUrl, $accountId, number_format($amount, 2, '.', ''), $currency, urlencode($reference), $signature, $paymentType, $cardId); return $url; }
import java.util.Locale; import java.net.URLEncoder; public String GetCardOnFilePreauthorizationUrl() { String baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; double amount = 1.5d; String currency = "EUR"; String reference = "123456789"; int paymentType = 9; String cardId = "8a8394855cfd3692015d0dc3f793355b"; try { String secretKey = "123456"; String sigData = String.format(Locale.ROOT, "%d/%.2f/%s/%s/%d/%s", accountId, amount, currency, reference, paymentType, cardId); String signature = GetSignature(secretKey, sigData); String url = String.format( Locale.ROOT,"%s?AccountId=%d&Amount=%.2f&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d&CardId=%s", baseUrl, accountId, amount, currency, URLEncoder.encode(reference, "UTF-8"), signature, paymentType, cardId); return url; }catch(Exception ex){} }
Parametre predautorizácie uloženej karty sú rovnaké ako pri štandardnej platbe, k žiadosti je však potrebné pridať tieto ďalšie parametre:
Názov | Popis | Formát | Požadované |
---|---|---|---|
PaymentType |
Typ platby Pre predautorizáciu uloženej karty musí byť nastavené 9 |
Numeric(1) | Áno |
CardId | CardID z notifikácie | Varchar(64) | Áno |
Signature | Dátový podpis vypočítaný zo zreťazených hodnôt parametrov AccountId, Amount, Currency, Reference, PaymentType (typ platby), BillingCity, BillingCountry, BillingPostcode, BillingStreet, CardHolder, Email a CardId (ID karty), ak sú tieto parametre k dispozícii. Ako oddeľovač sa používa lomítko („/“). | Char(64) | Áno |
Opakované platby v02
API koncový bod:
Live -https://amapi.trustpay.eu/mapi5/Card/PayPopup
Na testovacie účely prosím použite ten istý API koncový bod s testovacími prihlasovacími údajmi.
Opakované (recurring) transakcie umožňujú opakovanie platieb kartou. Toto napríklad umožňuje obchodníkovi implementovať plánované platby alebo pravidelne sa opakujúce platby.
Zodpovednosti obchodníkov:
- Uloženie ID žiadosti o platbu (PaymentRequestId) počiatočnej platby
- Udržovanie harmonogramu platieb
Počiatočná platba
Príklad počiatočnej platby:
public string GetInitialPaymentUrl() { string baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; decimal amount = 1.5M; string currency = "EUR"; string reference = "123456789"; int paymentType = 3; string secretKey = "123456"; string sigData = string.Format( CultureInfo.InvariantCulture, "{0}/{1:0.00}/{2}/{3}/{4}", accountId, amount, currency, reference, paymentType); string signature = GetSignature(secretKey, sigData); string url = string.Format( CultureInfo.InvariantCulture, "{0}?AccountId={1}&Amount={2:0.00}&Currency={3}&Reference={4}&Signature={5}&PaymentType={6}", baseUrl, accountId, amount, currency, HttpUtility.UrlEncode(reference), signature, paymentType); return url; }
function getInitialPaymentUrl() { $baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; $accountId = 4107111111; $amount = 1.5; $currency = "EUR"; $reference = "123456789"; $paymentType = 3; $secretKey = "123456"; $sigData = sprintf("%d/%s/%s/%s/%d", $accountId, number_format($amount, 2, '.', ''), $currency, $reference, $paymentType); $signature = GetSignature($secretKey, $sigData); $url = sprintf( "%s?AccountId=%d&Amount=%s&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d", $baseUrl, $accountId, number_format($amount, 2, '.', ''), $currency, urlencode($reference), $signature, $paymentType); return $url; }
import java.util.Locale; import java.net.URLEncoder; public String GetInitialPaymentUrl() { String baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; double amount = 1.5d; String currency = "EUR"; String reference = "123456789"; int paymentType = 3; try { String secretKey = "123456"; String sigData = String.format(Locale.ROOT, "%d/%.2f/%s/%s/%d", accountId, amount, currency, reference, paymentType); String signature = GetSignature(secretKey, sigData); String url = String.format( Locale.ROOT,"%s?AccountId=%d&Amount=%.2f&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d", baseUrl, accountId, amount, currency, URLEncoder.encode(reference, "UTF-8"), signature, paymentType); return url; }catch(Exception ex){} }
Parametre sú rovnaké ako pri štandardnom nákupe, je však potrebný ešte jeden dodatočný parameter:
Názov | Popis | Formát | Požadované |
---|---|---|---|
PaymentType |
Typ platby Pre počiatočnú opakovanú platbu musí byť nastavené 3 |
Numeric(1) | Áno |
Nasledujúca platba
Príklad nasledujúcej platby:
string baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; decimal amount = 1.5M; string currency = "EUR"; string reference = "123456789"; int paymentType = 4; int paymentRequestId = 555; string secretKey = "123456"; string sigData = string.Format( CultureInfo.InvariantCulture, "{0}/{1:0.00}/{2}/{3}/{4}/{5}/{6}", accountId, amount, currency, reference, paymentType, paymentRequestId); string signature = GetSignature(secretKey, sigData); string url = string.Format( CultureInfo.InvariantCulture, "{0}?AccountId={1}&Amount={2:0.00}&Currency={3}&Reference={4}&Signature={5}&PaymentType={6}&PaymentRequestId={7}", baseUrl, accountId, amount, currency, HttpUtility.UrlEncode(reference), signature, paymentType, paymentRequestId); Response.Redirect(url);
$baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; $accountId = 4107111111; $amount = 1.5; $currency = "EUR"; $reference = "123456789"; $paymentType = 4; $paymentRequestId = 555; $secretKey = "123456"; $sigData = sprintf("%d/%s/%s/%s/%d/%d", $accountId, number_format($amount, 2, '.', ''), $currency, $reference, $paymentType, $paymentRequestId); $signature = GetSignature($secretKey, $sigData); $url = sprintf( "%s?AccountId=%d&Amount=%s&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d&PaymentRequestId=%s", $baseUrl, $accountId, number_format($amount, 2, '.', ''), $currency, urlencode($reference), $signature, $paymentType, $paymentRequestId); header("Location: $url"); exit();
import java.util.Locale; import java.net.URLEncoder; String baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; double amount = 1.5d; String currency = "EUR"; String reference = "123456789"; int paymentType = 4; int paymentRequestId = 555; try { String secretKey = "123456"; String sigData = String.format(Locale.ROOT, "%d/%.2f/%s/%s/%d/%d", accountId, amount, currency, reference, paymentType, paymentRequestId); String signature = GetSignature(secretKey, sigData); String url = String.format( Locale.ROOT,"%s?AccountId=%d&Amount=%.2f&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d&PaymentRequestId=%s", baseUrl, accountId, amount, currency, URLEncoder.encode(reference, "UTF-8"), signature, paymentType, paymentRequestId); response.sendRedirect(url); }catch(Exception ex){}
Po vykonaní počiatočnej transakcie môžete vykonať opakované transakcie. To sa deje na pozadí pomocou parametrov prijatých v notifikácii o počiatočnej transakcii.
Parametre sú rovnaké ako pri štandardnom nákupe, ale k žiadosti je potrebné pridať tieto ďalšie parametre:
Názov | Popis | Formát | Požadované |
---|---|---|---|
PaymentType |
Typ platby Pre nasledujúce opakované platby musí byť nastavené na 4 |
Numeric(1) | Áno |
PaymentRequestId | PaymentRequestId z notifikácie o počiatočnej platbe | Numeric(10) | Áno |
Signature | Dátový podpis vypočítaný zo zreťazených hodnôt parametrov AccountId, Amount, Currency, Reference, PaymentType (typ platby), BillingCity, BillingCountry, BillingPostcode, BillingStreet, CardHolder, Email a PaymentRequestId (ID žiadosti o platbu), ak sú tieto parametre k dispozícii. Ako oddeľovač sa používa lomítko („/“). | Char(64) | Áno |
Telo odpovede HTTP bude obsahovať kód výsledku (pozri príklad odpovede vpravo).
Príklad odpovede:
{ 'ResultCode':3, 'AcquirerResponseId':'000.000.000' }
Opakované počiatočné predautorizované platby v02
API koncový bod:
Live -https://amapi.trustpay.eu/mapi5/Card/PayPopup
Na testovacie účely prosím použite ten istý API koncový bod s testovacími prihlasovacími údajmi.
Opakované predautorizované platby povoľujú vykonávať nasledujúce platby alebo neskoršie zúčtovanie (Capture).
Platbu je možné vykonať aj v sume 0,00 s tým, že pre ďalšie spracovanie budú možné len nasledujúce opakované platby a zúčtovanie (Capture) nebude možné vykonať.
Zodpovednosti obchodníkov:
- Uloženie ID žiadosti o platbu (PaymentRequestId) počiatočnej platby
Počiatočná platba
Príklad počiatočnej platby:
public string GetInitialPaymentUrl() { string baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; decimal amount = 1.5M; string currency = "EUR"; string reference = "123456789"; int paymentType = 12; string secretKey = "123456"; string sigData = string.Format( CultureInfo.InvariantCulture, "{0}/{1:0.00}/{2}/{3}/{4}", accountId, amount, currency, reference, paymentType); string signature = GetSignature(secretKey, sigData); string url = string.Format( CultureInfo.InvariantCulture, "{0}?AccountId={1}&Amount={2:0.00}&Currency={3}&Reference={4}&Signature={5}&PaymentType={6}", baseUrl, accountId, amount, currency, HttpUtility.UrlEncode(reference), signature, paymentType); return url; }
function getInitialPaymentUrl() { $baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; $accountId = 4107111111; $amount = 1.5; $currency = "EUR"; $reference = "123456789"; $paymentType = 12; $secretKey = "123456"; $sigData = sprintf("%d/%s/%s/%s/%d", $accountId, number_format($amount, 2, '.', ''), $currency, $reference, $paymentType); $signature = GetSignature($secretKey, $sigData); $url = sprintf( "%s?AccountId=%d&Amount=%s&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d", $baseUrl, $accountId, number_format($amount, 2, '.', ''), $currency, urlencode($reference), $signature, $paymentType); return $url; }
import java.util.Locale; import java.net.URLEncoder; public String GetInitialPaymentUrl() { String baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; double amount = 1.5d; String currency = "EUR"; String reference = "123456789"; int paymentType = 12; try { String secretKey = "123456"; String sigData = String.format(Locale.ROOT, "%d/%.2f/%s/%s/%d", accountId, amount, currency, reference, paymentType); String signature = GetSignature(secretKey, sigData); String url = String.format( Locale.ROOT,"%s?AccountId=%d&Amount=%.2f&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d", baseUrl, accountId, amount, currency, URLEncoder.encode(reference, "UTF-8"), signature, paymentType); return url; }catch(Exception ex){} }
Parametre sú rovnaké ako pri štandardnom nákupe, je však potrebný ešte jeden dodatočný parameter:
Názov | Popis | Formát | Požadované |
---|---|---|---|
PaymentType |
Typ platby Pre počiatočnú opakovanú predautorizovanú platbu musí byť nastavené 12 |
Numeric(2) | Áno |
Predautorizácia v02
API koncový bod:
Live -https://amapi.trustpay.eu/mapi5/Card/PayPopup
Na testovacie účely prosím použite ten istý API koncový bod s testovacími prihlasovacími údajmi.
Táto funkcia umožňuje obchodníkovi vykonať predautorizáciu, po ktorej nasleduje neskoršie zúčtovanie platby. Je vhodný v situáciách, keď je rezervácia peňazí nutná skôr, ako je možné dodanie tovaru alebo poskytnutie služieb.
Keď obchodník vykoná predautorizáciu, suma na karte je iba rezervovaná. Funguje to podobným spôsobom ako pri štandardných transakciách. Zúčtovanie (Capture) sa vykonáva neskôr na pozadí v systéme obchodníka.
Predautorizácia
Príklad nastavenia predautorizácie:
public string GetPreauthorizationSetupUrl() { string baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; decimal amount = 1.5M; string currency = "EUR"; string reference = "123456789"; int paymentType = 5; string secretKey = "123456"; string sigData = string.Format( CultureInfo.InvariantCulture, "{0}/{1:0.00}/{2}/{3}/{4}", accountId, amount, currency, reference, paymentType); string signature = GetSignature(secretKey, sigData); string url = string.Format( CultureInfo.InvariantCulture, "{0}?AccountId={1}&Amount={2:0.00}&Currency={3}&Reference={4}&Signature={5}&PaymentType={6}", baseUrl, accountId, amount, currency, HttpUtility.UrlEncode(reference), signature, paymentType); return url; }
function getPreauthorizationSetupUrl() { $baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; $accountId = 4107111111; $amount = 1.5; $currency = "EUR"; $reference = "123456789"; $paymentType = 5; $secretKey = "123456"; $sigData = sprintf("%d/%s/%s/%s/%d", $accountId, number_format($amount, 2, '.', ''), $currency, $reference, $paymentType); $signature = GetSignature($secretKey, $sigData); $url = sprintf( "%s?AccountId=%d&Amount=%s&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d", $baseUrl, $accountId, number_format($amount, 2, '.', ''), $currency, urlencode($reference), $signature, $paymentType); return $url; }
import java.util.Locale; import java.net.URLEncoder; public String GetPreauthorizationSetupUrl() { String baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; double amount = 1.5d; String currency = "EUR"; String reference = "123456789"; int paymentType = 5; try { String secretKey = "123456"; String sigData = String.format(Locale.ROOT, "%d/%.2f/%s/%s/%d", accountId, amount, currency, reference, paymentType); String signature = GetSignature(secretKey, sigData); String url = String.format( Locale.ROOT,"%s?AccountId=%d&Amount=%.2f&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d", baseUrl, accountId, amount, currency, URLEncoder.encode(reference, "UTF-8"), signature, paymentType); return url; }catch(Exception ex){} }
Parametre sú rovnaké ako pri štandardnom nákupe, je však potrebný ešte jeden dodatočný parameter:
Názov | Popis | Formát | Požadované |
---|---|---|---|
PaymentType |
Typ platby Pre predautorizáciu štandardného nákupu musí byť nastavená na 5 |
Numeric(1) | Áno |
Zúčtovanie (Capture)
Príklad zúčtovania:
string baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; decimal amount = 1.5M; string currency = "EUR"; string reference = "123456789"; int paymentType = 6; int paymentRequestId = 555; string secretKey = "123456"; string sigData = string.Format( CultureInfo.InvariantCulture, "{0}/{1:0.00}/{2}/{3}/{4}/{5}/{6}", accountId, amount, currency, reference, paymentType, paymentRequestId); string signature = GetSignature(secretKey, sigData); string url = string.Format( CultureInfo.InvariantCulture, "{0}?AccountId={1}&Amount={2:0.00}&Currency={3}&Reference={4}&Signature={5}&PaymentType={6}&PaymentRequestId={7}", baseUrl, accountId, amount, currency, HttpUtility.UrlEncode(reference), signature, paymentType, paymentRequestId); Response.Redirect(url);
$baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; $accountId = 4107111111; $amount = 1.5; $currency = "EUR"; $reference = "123456789"; $paymentType = 6; $paymentRequestId = 555; $secretKey = "123456"; $sigData = sprintf("%d/%s/%s/%s/%d/%d", $accountId, number_format($amount, 2, '.', ''), $currency, $reference, $paymentType, $paymentRequestId); $signature = GetSignature($secretKey, $sigData); $url = sprintf( "%s?AccountId=%d&Amount=%s&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d&PaymentRequestId=%s", $baseUrl, $accountId, number_format($amount, 2, '.', ''), $currency, urlencode($reference), $signature, $paymentType, $paymentRequestId); header("Location: $url"); exit();
import java.util.Locale; import java.net.URLEncoder; String baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; double amount = 1.5d; String currency = "EUR"; String reference = "123456789"; int paymentType = 6; int paymentRequestId = 555; try { String secretKey = "123456"; String sigData = String.format(Locale.ROOT, "%d/%.2f/%s/%s/%d/%d", accountId, amount, currency, reference, paymentType, paymentRequestId); String signature = GetSignature(secretKey, sigData); String url = String.format( Locale.ROOT,"%s?AccountId=%d&Amount=%.2f&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d&PaymentRequestId=%s", baseUrl, accountId, amount, currency, URLEncoder.encode(reference, "UTF-8"), signature, paymentType, paymentRequestId); response.sendRedirect(url); }catch(Exception ex){}
Po autorizácii transakcie môžete na dokončenie transakcie požiadať o jej zúčtovanie. To sa deje spojením na pozadí pomocou parametrov prijatých v notifikácii o predautorizácii.
Parametre sú rovnaké ako pri štandardnom nákupe, ale k žiadosti je potrebné pridať tieto ďalšie parametre:
Názov | Popis | Formát | Požadované |
---|---|---|---|
PaymentType |
Typ platby Pre zúčtovanie (Capture) musí byť nastavené na 6 |
Numeric(1) | Áno |
PaymentRequestId | PaymentRequestId z notifikácie o predautorizácii | Numeric(10) | Áno |
Signature | Dátový podpis vypočítaný zo zreťazených hodnôt parametrov AccountId (ID účtu), Amount (suma), Currency (mena), Reference (referencia), PaymentType (typ platby) a PaymentRequestId (ID žiadosti o platbu), ak sú tieto parametre k dispozícii. Ako oddeľovač sa používa lomítko („/“). | Char(64) | Áno |
Telo odpovede HTTP bude obsahovať kód výsledku (pozri príklad odpovede vpravo).
Príklad odpovede:
{ 'ResultCode':3, 'AcquirerResponseId':'000.000.000' }
Vrátenie platby v02
API koncový bod:
Live -https://amapi.trustpay.eu/mapi5/Card/PayPopup
Na testovacie účely prosím použite ten istý API koncový bod s testovacími prihlasovacími údajmi.
Príklad vrátenia platby:
string baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; decimal amount = 1.5M; string currency = "EUR"; string reference = "123456789"; int paymentType = 8; int paymentRequestId = 555; string secretKey = "123456"; string sigData = string.Format( CultureInfo.InvariantCulture, "{0}/{1:0.00}/{2}/{3}/{4}/{5}/{6}", accountId, amount, currency, reference, paymentType, paymentRequestId); string signature = GetSignature(secretKey, sigData); string url = string.Format( CultureInfo.InvariantCulture, "{0}?AccountId={1}&Amount={2:0.00}&Currency={3}&Reference={4}&Signature={5}&PaymentType={6}&PaymentRequestId={7}", baseUrl, accountId, amount, currency, HttpUtility.UrlEncode(reference), signature, paymentType, paymentRequestId); Response.Redirect(url);
$baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; $accountId = 4107111111; $amount = 1.5; $currency = "EUR"; $reference = "123456789"; $paymentType = 8; $paymentRequestId = 555; $secretKey = "123456"; $sigData = sprintf("%d/%s/%s/%s/%d/%d", $accountId, number_format($amount, 2, '.', ''), $currency, $reference, $paymentType, $paymentRequestId); $signature = GetSignature($secretKey, $sigData); $url = sprintf( "%s?AccountId=%d&Amount=%s&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d&PaymentRequestId=%s", $baseUrl, $accountId, number_format($amount, 2, '.', ''), $currency, urlencode($reference), $signature, $paymentType, $paymentRequestId); header("Location: $url"); exit();
import java.util.Locale; import java.net.URLEncoder; String baseUrl = "https://amapi.trustpay.eu/mapi5/Card/PayPopup"; long accountId = 4107111111; double amount = 1.5d; String currency = "EUR"; String reference = "123456789"; int paymentType = 8; int paymentRequestId = 555; try { String secretKey = "123456"; String sigData = String.format(Locale.ROOT, "%d/%.2f/%s/%s/%d/%d", accountId, amount, currency, reference, paymentType, paymentRequestId); String signature = GetSignature(secretKey, sigData); String url = String.format( Locale.ROOT,"%s?AccountId=%d&Amount=%.2f&Currency=%s&Reference=%s&Signature=%s&PaymentType=%d&PaymentRequestId=%s", baseUrl, accountId, amount, currency, URLEncoder.encode(reference, "UTF-8"), signature, paymentType, paymentRequestId); response.sendRedirect(url); }catch(Exception ex){}
Táto funkcia umožňuje vrátenie platby alebo zrušenie transakcie, ktorá bola autorizovaná alebo predautorizovaná.
Parametre sú rovnaké ako pri štandardnom nákupe, ale k žiadosti je potrebné pridať tieto ďalšie parametre:
Názov | Popis | Formát | Požadované |
---|---|---|---|
PaymentType |
Typ platby Pre vrátenie platby musí byť nastavené na 8 |
Numeric(1) | Áno |
PaymentRequestId | PaymentRequestId z notifikácie o pôvodnej platbe | Numeric(10) | Áno |
Signature | Dátový podpis vypočítaný zo zreťazených hodnôt parametrov AccountId (ID účtu), Amount (suma), Currency (mena), Reference (referencia), PaymentType (typ platby) a PaymentRequestId (ID žiadosti o platbu), ak sú tieto parametre k dispozícii. Ako oddeľovač sa používa lomítko („/“). | Char(64) | Áno |
Telo odpovede HTTP bude obsahovať kód výsledku (pozri príklad odpovede vpravo).
Príklad odpovede:
{ 'ResultCode':0, 'AcquirerResponseId':'000.000.000' }
Výsledok platby v02
Po zaplatení je zákazník presmerovaný na jednu z Return URL adries poskytnutých obchodníkom:
-
Success Return URL
Zákazník je sem presmerovaný v prípade oznámenej, autorizovanej alebo úspešnej platby s výsledkom = 0 alebo v prípade, že vypršal časový limit čakajúci na platbu s ResultCode = 1 -
Cancel Return URL
Zákazník je sem presmerovaný v prípade, že sa rozhodne zrušiť platbu s ResultCode = 1005. -
Error Return URL
Zákazník je sem presmerovaný v prípade neúspešnej alebo odmietnutej platby s ResultCode > = 1000 a ResultCode! = 1005.
S presmerovaniami sa vždy odosielajú tieto parametre:
Príklad výsledku platby:
https://example.handler.com/result.php?Reference=1234567890&ResultCode=0&AcquirerResponseId=000.100.110&PaymentRequestId=4337417657
Názov | Popis | Formát |
---|---|---|
Reference | Referencia (identifikácia platby obchodníka) | Varchar(35) |
ResultCode | Kód výsledku | Numeric(4) |
AcquirerResponseId | Kód výsledku nadobúdateľa karty | Varchar(128) |
PaymentRequestId | ID žiadosti o platbu (odosielané, ak je k dispozícii, je možné ho použiť pri otázkach týkajúcich sa neúspešných platieb) | Numeric(10) |
Podpis
Vytvorenie tajného kľúča
V aktívnom prostredí sa pre každý obchodnícky účet automaticky generuje iný tajný kľúč. Tento tajný kľúč si môžete zobraziť na svojom Obchodníckom portáli TrustPay v časti Technické nastavenia. Tajný kľúč si môžete kedykoľvek zobraziť. Môžete tiež vidieť históriu tajných kľúčov a podľa potreby vygenerovať v aktívnom prostredí nový kľúč.
Vytvorenie podpisu
using System; using System.Security.Cryptography; using System.Text; public static string GetSignature(string key, string message) { using (var hmac = HMAC.Create("HMACSHA256")) { hmac.Key = Encoding.UTF8.GetBytes(key); byte[] signature = hmac.ComputeHash(Encoding.UTF8.GetBytes(message)); return BitConverter.ToString(signature).Replace("-", "").ToUpperInvariant(); } }
function GetSignature($key, $message){ return strtoupper(hash_hmac('sha256', pack('A*', $message), pack('A*', $key))); }
public static String GetSignature(String key, String message) throws Exception { byte[] keyBytes = key.getBytes("UTF-8"); byte[] messageBytes = message.getBytes("UTF-8"); javax.crypto.Mac mac = javax.crypto.Mac.getInstance("HmacSHA256"); mac.init(new javax.crypto.spec.SecretKeySpec(keyBytes, mac.getAlgorithm())); return ByteArrayToHexString(mac.doFinal(messageBytes)); } public static String ByteArrayToHexString(byte[] b) { java.math.BigInteger bi = new java.math.BigInteger(1, b); return String.format("%0" + (b.length << 1) + "X", bi); }
Kód HMAC-SHA-256 (RFC 2104) sa používa na kontrolu integrity údajov odosielaných medzi TrustPay a Obchodníkom. Tento podpis sa vytvára pomocou tajného kľúča a údajov zo správy. Údaje zo správy sa získavajú zreťazením parametrov žiadosti a podrobnosti sú vysvetlené v dokumentácii pre konkrétne operácie. Po vypočítaní podpisu je potrebné ho previesť na hexadecimálny reťazec veľkých písmen.
Spoločnosť TrustPay poskytuje funkcie na vytvorenie podpisu v .NET C #, PHP a JAVA.
Overenie podpisu v02
Notifikácie o platbe
Notifikácia o bankovom prevode v02
Pri každej oznámenej, autorizovanej alebo úspešne dokončenej platbe na účte obchodníka, spoločnosť TrustPay odošle výsledok platby obchodníkovi na notifikačnú URL adresu alebo na e-mail s nasledujúcimi parametrami:
Príklad URL notifikácie:
https://example.handler.com/result.php?AccountId=4107111111&Type=CRDT&Amount=6.00&Currency=EUR&ResultCode=0&PaymentId=177561&Reference=1234567890&CounterAccount=SK3399520000002107425307&CounterAccountName=TestAccount&Signature=C4FFA5F7B57A0F5E6DD105197C8B7D7B9214509F3618CDC0F527C9B4E57F0334
Príklad e-mailovej notifikácie:
{ "AccountId":4107111111, "Type":"CRDT", "Amount":6.00, "Currency":"EUR", "Reference":"1234567890", "ResultCode":0, "PaymentId":"177561", "Signature":"C4FFA5F7B57A0F5E6DD105197C8B7D7B9214509F3618CDC0F527C9B4E57F0334", "CounterAccount":"SK3399520000002107425307", "CounterAccountName":"TestAccount" }
Názov | Popis | Formát |
---|---|---|
AccountId | Obchodnícky účet alebo ID projektu (ID účtu alebo projektu prideleného spoločnosťou TrustPay) | Numeric(10) |
Type | Typ transakcie (CRDT alebo DBIT) | Char(4) |
Amount | Výška platby (presne na 2 desatinné miesta) | Numeric(13,2), en-US format |
Currency | Mena platby (rovnaká ako mena obchodníckeho účtu) | Char(3) |
Reference1 | Referencia (identifikácia platby obchodníka) | Varchar(35) |
ResultCode | Kód výsledku | Numeric(4) |
PaymentId | ID platby | Numeric(10) |
OrderId1 | TrustPay ID príkazu | Numeric(10) |
CounterAccount1 | Protiúčet | Varchar(34) |
CounterAccountName1 | Názov protiúčtu | Varchar(140) |
Signature | Dátový podpis vypočítaný zo zreťazených hodnôt parametrov AccountId (ID účtu), Amount (suma), Currency (mena), Type (typ), ResultCode (kód výsledku), CounterAccount (protiúčet), CounterAccountName (názov protiúčtu), OrderId (ID príkazu), PaymentId (ID platby), Reference (referencia) a RefuseReason (dôvod zamietnutia), ak sú tieto parametre k dispozícii. Ako oddeľovač sa používa lomítko („/“). | Char(64) |
1 Tieto parametre nemusia byť k dispozícii v závislosti od použitej žiadosti a/alebo platobnej brány.
Notifikácie je možné zasielať obchodníkovi pomocou nasledujúcich kanálov:
-
HTTP žiadosť
Všetky parametre sa odosielajú ako dotazový reťazec HTTP na notifikačnú URL adresu. Skript na tejto URL adrese by mal vrátiť http stav 200 OK pri úspešnosti alebo 500 Internal server error v opačnom prípade. TrustPay bude opakovať notifikácia každých 10 minút, kým do 75 hodín (450 pokusov) nedostanete stav HTTP na 200 OK. -
E-mail
E-mail v textovom/plain formáte sa zasiela na e-mailovú adresu nakonfigurovanú obchodníkom v Obchodníckom portáli TrustPay v Technických nastaveniach.
Notifikácia o kartových transakciách v02
Príklad URL notifikácie:
https://example.handler.com/result.php?AccountId=4107111111&Type=CRDT&Amount=6.00&Currency=EUR&Reference=1234567890&ResultCode=0&PaymentRequestId=177561&Signature=C4FFA5F7B57A0F5E6DD105197C8B7D7B9214509F3618CDC0F527C9B4E57F0334&CardId=8a8294495c589aa3015c63bd6d237e46&CardMask=0162&CardExpiration=1020&AuthNumber=198159
Príklad e-mailovej notifikácie:
{ "AccountId":"4107111111", "Type":"CRDT", "Amount":"6.00", "Currency":"EUR", "PaymentRequestId":"177561", "CardId":"8a8294495c589aa3015c63bd6d237e46", "CardMask":"0162", "CardExpiration":"1020", "AuthNumber":"198159", "Signature":"51541600BDED4230304D5E20DB96730181E7C34886DF00D82650C6F0C28424A2", "ResultCode":"3", "Reference":"1234567890" }
URL a e-mailová notifikácia o kartových transakciách obsahujú nasledujúce parametre:
Názov | Popis | Formát |
---|---|---|
AccountId | Obchodnícky účet alebo ID projektu (ID účtu alebo projektu prideleného spoločnosťou TrustPay) | Numeric(10) |
Type | Typ transakcie (CRDT alebo DBIT) | Char(4) |
Amount | Výška platby (presne na 2 desatinné miesta) | Numeric(13,2), en-US format |
Currency | Mena platby (rovnaká ako mena obchodného účtu) | Char(3) |
Reference | Referencia (identifikácia platby obchodníka) | Varchar(35) |
ResultCode | Kód výsledku | Numeric(4) |
PaymentRequestId | ID žiadosti o platbu (odosielané keď je k dispozícii, je možné ho použiť pri otázkach týkajúcich sa neúspešných platieb) | Numeric(10) |
Signature | Dátový podpis vypočítaný zo zreťazených hodnôt parametrov AccountId (ID účtu), Amount (suma), Currency (mena), Reference (referencia), Type (typ), ResultCode (kód výsledku), PaymentRequestId (ID žiadosti o platbu), CardId (ID karty), CardMask (maskovaná karta), CardExpiration (vypršanie platnosti karty) a AuthNumber (číslo autorizácie), ak sú tieto parametre k dispozícii. Ako oddeľovač sa používa lomítko („/“). | Char(64) |
CardId1 | ID karty. Možno použiť na uskutočnenie platieb zaevidovanou kartou (card-on-file) | Varchar(64) |
CardMask1 | Maskované číslo karty alebo posledné 4 číslice karty | Varchar(19) |
CardExpiration1 | Platnosť karty vo formáte MMRR | Number(4) |
AuthNumber1 | Číslo autorizácie | Varchar(7) |
1 Tieto parametre nemusia byť k dispozícii v závislosti od žiadosti.
Zoznamy kódov
Podporované meny
Zoznam mien (podľa normy ISO 4217) podporovaných TrustPay pre okamžité bankové prevody.
Kód | ID | Názov |
CZK | 203 | Česká koruna |
EUR | 978 | Euro |
Podporované krajiny
Zoznam krajín zákazníka (podľa normy ISO 3166-1 alpha-2) podporovaných spoločnosťou TrustPay pre okamžité bankové prevody.
Kód | Krajina |
CZ | Česká republika |
SK | Slovenská republika |
Podporované jazyky
Zoznam jazykov (podľa normy ISO 639-1) podporovaných spoločnosťou TrustPay.
Kód | Jazyk | Podporované pre bankové prevody | Podporované pre platby kartou |
en | Anglický | Áno | Áno |
sk | Slovenský | Áno | Áno |
cs | Český | Áno | Áno |
bg | Bulharský | Nie | Áno |
hr | Chorvátsky | Nie | Áno |
da | Dánsky | Nie | Áno |
nl | Holandský | Nie | Áno |
et | Estónsky | Nie | Áno |
fi | Fínsky | Nie | Áno |
fr | Francúzsky | Nie | Áno |
de | Nemecký | Nie | Áno |
el | Grécky | Nie | Áno |
hu | Maďarský | Nie | Áno |
it | Taliansky | Nie | Áno |
ja | Japonský | Nie | Áno |
lv | Lotyšský | Nie | Áno |
lt | Litovský | Nie | Áno |
nb | Nórsky Bokmål | Nie | Áno |
pl | Poľský | Nie | Áno |
pt | Portugalský | Nie | Áno |
ro | Rumunský | Nie | Áno |
ru | Ruský | Nie | Áno |
sl | Slovinský | Nie | Áno |
es | Španielsky | Nie | Áno |
sv | Švédsky | Nie | Áno |
uk | Ukrajinský | Nie | Áno |
Kódy výsledku (Result code)
Kód | Názov | Popis | Vrátené cez |
0 | Success (Úspešná) | Platba bola úspešne spracovaná. Po prijatí notifikácie, finančné prostriedky boli pripísané na účet obchodníka – obchodník môže bezodkladne poskytnúť tovar alebo poskytnúť služby | presmerovania klienta, notifikácia obchodníka |
1 | Pending (Čakanie na schválenie) | Platba mohla byť zaplatená, ale skutočný výsledok zatiaľ nie je známy (napríklad offline platba uskutočnená klientom alebo TrustPay stále čaká na notifikáciu od banky). | presmerovania klienta |
2 | Announced (Nahlásená) | TrustPay bol notifikovaný, že klient zadal platobný príkaz alebo uskutočnil platbu, je však potrebné ďalšie potvrdenie od tretej strany. Ďalšia notifikácia (s kódom výsledku 0 – úspešnosť) bude odoslaná, keď TrustPay prijme a spracuje platbu od tretej strany. Finančné prostriedky neboli pripísané na obchodnícky účet a neexistuje žiadna záruka, že budú. | notifikácia obchodníka |
3 | Authorized (Autorizovaná) | Platba bola úspešne autorizovaná. Ďalšia notifikácia (s kódom výsledku 0 – úspešnosť) bude odoslané, keď TrustPay prijme a spracuje platbu od tretej strany. V prípade platieb kartou už nebude odosielané žiadna ďalšia notifikácia a prostriedky budú pripísané na obchodnícky účet hromadnou platbou nasledujúci deň vyrovnania. Obchodník môže poskytnúť tovar alebo služby bezodkladne. | notifikácia obchodníka |
4 | Processing (Prebieha spracovanie) | TrustPay prijal platbu, ale musí byť interne spracovaná pred jej zúčtovaním na obchodnícky účet. Po úspešnom spracovaní platby bude zaslané ďalšia notifikácia (s kódom výsledku 0 – úspešnosť). Finančné prostriedky budú pripísané na obchodnícky účet neskôr. | notifikácia obchodníka |
5 | AuthorizedOnly (Iba autorizovaná) | Platba kartou bola úspešne predautorizovaná, ale nebola zúčtovaná. Na zúčtovanie platby je potrebná ďalšia API žiadosť. | presmerovania klienta, notifikácia obchodníka |
1001 | Invalid request (Neplatná požiadavka) | Niektoré parametre v žiadosti chýbajú alebo majú neplatný formát. | presmerovania klienta |
1002 | Unknown account (Neznámy účet) | Účet so zadaným ID sa nenašiel. Skontrolujte, či používate správne AID pre produkčné prostredie. | presmerovania klienta |
1003 | Merchant account disabled (Obchodnícky účet bol deaktivovaný) | Obchodnícky účet bol deaktivovaný. | presmerovania klienta |
1004 | Invalid signature (Neplatný podpis) | Overenie podpisu žiadosti zlyhalo. | presmerovania klienta |
1005 | User cancel (Zrušená užívateľom) | Zákazník zrušil platbu. | presmerovania klienta |
1006 | Invalid authentication (Neplatné overenie) | Žiadosť nebola správne overená. | presmerovania klienta |
1007 | Insufficient balance (Nedostatočný zostatok) | Požadovaná suma transakcie je vyššia ako disponibilný zostatok. | presmerovania klienta |
1008 | Service not allowed (Služba nie je povolená) | Službu nie je možné použiť alebo nebolo udelené povolenie na použitie danej služby. Ak dostanete tento kód, kontaktujte TrustPay, kde získate ďalšie informácie. | presmerovania klienta |
1009 | Processing ID used (Spracovávanie použitého ID) | Zadané ID spracovania už bolo použité. Vygenerujte nový PID pomocou servisného spojenia Nastavenie platby. | presmerovania klienta |
1010 | Transaction not found (Transakcia sa nenašla) | Transakcia so zadaným ID sa nenašla. | presmerovania klienta, API odpovede |
1011 | Unsupported transaction (Nepodporovaná transakcia) | Požadovaná akcia nie je pre transakciu podporovaná. | presmerovania klienta, API odpovede |
1014 | Rejected transaction (Odmietnutá transakcia) | Transakcia bola zamietnutá vydavateľom karty alebo platobnou bránou. | presmerovania klienta |
1015 | Declined by risk (Odmietnute riskom) | Tranzakcia bola odmietnutá riskovým oddelením. | presmerovania klienta, API odpovede |
1100 | General Error (Všeobecná chyba) | Vyskytla sa interná chyba. Pre vyriešenie tohto problému, kontaktujte TrustPay. | presmerovania klienta, API odpovede |
1101 | Unsupported currency conversion (Nepodporovaná konverzia meny) | Prepočet mien pre požadované meny nie je podporovaný. | presmerovania klienta |
Kód výsledku nadobúdateľa karty
Kód | Popis |
100.100.303 | Zamietnuté - platnosť karty vypršala |
100.100.600 | Zamietnuté - neplatný CVV |
100.100.601 | Zamietnuté - neplatný CVV |
100.100.700 | Zamietnuté - neplatné číslo karty |
100.380.401 | Zamietnuté - zlyhala autentifikácia 3DS |
100.380.501 | Zamietnuté - zlyhala autentifikácia 3DS |
800.100.151 | Zamietnuté - neplatné číslo karty |
800.100.153 | Zamietnuté - neplatný CVV |
800.100.155 | Zamietnuté - nedostatok finančných prostriedkov |
800.100.157 | Zamietnuté - neplatný dátum vypršania platnosti |
800.100.161 | Zamietnuté - príliš veľa neplatných pokusov |
800.100.162 | Zamietnuté - limit karty bol prekročený |
800.100.163 | Zamietnuté - limit karty bol prekročený |
800.120.101 | Zamietnuté - limit karty bol prekročený |
800.120.200 | Zamietnuté - limit karty bol prekročený |
800.120.201 | Zamietnuté - limit karty bol prekročený |
Typ platby
Kód | Popis |
0 | Nákup |
1 | Uložená karta (Card on File) – Registrácia |
2 | Uložená karta (Card on File) – Nákup |
3 | Opakované platby (recurring) – Počiatočná platba |
4 | Opakované platby (recurring) – Nasledujúca platba |
5 | Predautorizácia |
6 | Zúčtovanie (Capture) |
9 | Zaevidovaná karta – Predbežná autorizácia |
8 | Vrátenie platby |
Aktualizácia API 2020 - SCA
Čo je SCA?
Silné overenie klienta/Strong Customer Authentication (SCA), ako súčasť smernice o platobných službách (PSD2) v Európskom hospodárskom priestore, vyžaduje zmeny v overovaní zákazníka pri online platbách. V záujme zvýšenia bezpečnosti online platieb bude potrebná nová verzia overenia zákazníka.
Čo znamená SCA pre vás?
Spoločnosť TrustPay upravila svoju platobnú bránu tak, aby vyhovovala novým regulačným požiadavkám SCA spôsobom, ktorý si bude vyžadovať čo najmenej zmien zo strany obchodníka. Od vás sa bude požadovať, aby ste nám zaslali ďalšie informácie o vašom zákazníkovi v platobných žiadostiach pre platby kartou a zvyšok vykoná TrustPay.
Aké zmeny musíte urobiť vo svojej integrácii?
V platobných žiadostiach pre platby kartou nám musíte poslať nasledujúce dodatočné políčka:
Názov | Popis | Formát |
---|---|---|
CardHolder | Meno držiteľa karty (minimálne 3 znaky) | Varchar(100) |
BillingStreet | Ulica a číslo fakturačnej adresy zákazníka | Varchar(100) |
BillingCity | Mesto fakturačnej adresy zákazníka | Varchar(80) |
BillingPostcode | Poštové smerovacie číslo fakturačnej adresy zákazníka | Varchar(30)1 |
BillingCountry | Krajina fakturačnej adresy zákazníka | Char(2) |
E-mail zákazníka | Varchar(254) |
1 Povolené sú iba alfanumerické znaky. Počas procesu platby sa môžu stratiť alebo zmeniť ďalšie znaky.
Ďalšie informácie nájdete v tejto časti našej integračnej príručky: Karty
Aký je posledný termín na aktualizáciu integrácie?
Mali by ste zabezpečiť, aby vaše systémy vyhovovali vyššie uvedeným zmenám do 1. októbra 2020. Ak svoju integráciu neaktualizujete, vydávajúce banky môžu zamietnuť vaše transakcie, v ktorých chýbajú nové povinné údaje.