iyzico Checkout Form and Payment Page Integration Document
Transkript
iyzico Checkout Form and Payment Page Integration Document
iyzico Checkout Form and Payment Page Integration Document iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com History of Changes Date Author Version Reason 28/09/15 Hakan ERDOGAN, Sabri Onur Tüzün 1.0 Draft document 21/01/16 Emre Talay Can Pekdemir 1.1 Payment Page is added. iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com Content iyzico Checkout Form and Payment Page ................................................................................................................. 1 Integration Document.................................................................................................................................................. 1 1 2 Overview ................................................................................................................................................................. 4 API Services ............................................................................................................................................................ 4 2.1 API Service Endpoints, Requests and Responses....................................................................................................... 5 2.2 Payment Group, Basket Item Type .............................................................................................................................. 5 2.3 Payment Request and Response Dictonary ................................................................................................................ 6 2.4 Checkout Form and Payment Page .............................................................................................................................. 9 2.4.1 initializeCheckoutForm .................................................................................................................................................... 11 2.4.2 Callback (GetAuthRequest) ............................................................................................................................................. 13 2.5 Cancel ............................................................................................................................................................................. 22 2.6 Refund ............................................................................................................................................................................ 24 iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com 1 Overview iyzico API services are developed for all merchants that accept online payments. All services are developed based on stateless Restfull service architecture. API clients are required for communication such as data marshalling / unmarshalling and PKI (public key infrastructure) encryption / decryption. iyzico provides API clients listed as below. Merchants should use appropriate clients based on their programming language. Java .Net PHP Ruby on Rails (RoR) Phyton There are 3 main input fields for iyzico API integration. API Base URL : Main endpoint URL value for API client. For example https://stg.iyzipay.com API Key : Merchant unique identifier key. Merchants have to send this key for all requests. E.g: Txl2ctiktW6BrNmFo10pZiPn8W67Ksob. Secret Key : Merchant unique password. Secret key is never used in data communication. E.g: GdzIHrXly6gQkq7NWOgx9DmXGcQlZIF4XelwC0kBD3 It will be better to integrate iyzico API’s initially in Staging / test enviroment. 2 API Services In the below table, you can find the list of iyzico API service endpoints. # 1 2 3 4 API Service (Endpoint) Checkout Form payments (initialize) Checkout Form payments (callback & getAuth) Cancel Refund API Service (Endpoint) URL Method POST /payment/iyzipos/checkoutform/initialize/ecom POST /payment/iyzipos/checkoutform/auth/ecom/detail /payment/iyzipos/cancel /payment/iyzipos/refund POST POST iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com 2.1 API Service Endpoints, Requests and Responses In all API service endpoints requests; Authorization and x-iyzi-rnd parameters must be send within Request Header. In the table below, you can find the list of optional parameters. Data Input Name Type Mandatory locale String No conversationId String No Explanation For language settings.Default value is tr Optional parameter to match request and response In the below table, you will see common parameters in all responses. If the result is successful (status=success) then other fields will be filled based on the request. Output Name status errorCode errorMessage errorGroup locale Data Type String String String String String Explanation Service response result. success / failure Error code if service response status is failure Error message if service response status is failure. Error group if service response status is failure. For language settings.Default value is tr If sent, optional parameter to match request and conversationId String response systemTime Long Response system timestamp value 2.2 Payment Group, Basket Item Type There are three types of payment groups, listed as below (paymentGroup): LISTING : for listing payments, such as classified listing payment SUBSCRIPTION : for subscription payments, such as monthly store subscription fee PRODUCT : for physical or virtual product payments, such as ecommerce payments Basket Item Type (itemType) may be VIRTUAL for all payment groups (PRODUCT, LISTING and SUBSCRIPTION). Basket Item Type (itemType) may also be PHYSICAL for PRODUCT payment group (for most cases). iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com ShippingAddress is an optional parameter in payment request for VIRTUAL products. But even one of the product type is PHYSICAL in the basket, ShippingAddress will be mandatory in the payment request. 2.3 Payment Request and Response Dictonary Request Parameters Data Type Manda tory price Decimal Yes paidPrice Decimal Yes Explanation Total amount of basket. The sum of basket items’ amount must be equal to the price of basket Price that tax and discount are considerd but instalment fee doesn’t included.. Installment value. For single installment payments, it should be 1. (Valid values: 1, 2, 3, 6, 9) installment Integer Yes basketId String No Merchant's basket ID. paymentChannel String No Payment channel. WEB, MOBILE, MOBILE_WEB, MOBILE_IOS, MOBILE_ANDROID, MOBILE_WINDOWS, MOBILE_TABLET, MOBILE_PHONE Payment Group. Default value is PRODUCT. Valid values are PRODUCT, LISTING, SUBSCRIPTION Valid values are: SHOPIFY,MAGENTO,PRESTASHOP,WOOCOMMERCE,OPENCA RT paymentGroup String No paymentSource String Yes callbackUrl String Yes Merchant callback url for payment result notification id (Buyer) String name (Buyer) String Yes Yes Buyer ID Buyer name String Yes Buyer surname String Yes Buyer identity number String String String String String String Yes Yes Yes No Yes Yes Buyer city value Buyer country value Buyer email address Buyer telephone number Buyer IP address Buyer registration address surname (Buyer) identityNumber (Buyer) city (Buyer) country (Buyer) email (Buyer) gsmNumber (Buyer) ip (Buyer) registrationAddress iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com (Buyer) zipCode (Buyer) String registrationDate String (Buyer) No lastLoginDate (Buyer) String No contactName (BillingAddress) city (BillingAddress) country (BillingAddress) address (BillingAddress) zipCode (BillingAddress) No Buyer zip code Buyer registration date. Date format should be 2015-09-17 23:45:06 Last login date of buyer. Date format should 2015-09-17 23:45:06 String Yes Contact name of billing address. String Yes City name of billing address. String Yes Country name of billing address. String Yes Address details of billing address. String No Zip code of billing address contactName String (ShippingAddress) Yes ** Contact name of shipping adress. If one of the itemType in basket is PHYSICAL, then this parameter will mandatory. city String (ShippingAddress) Yes ** City name of shipping address. If one of the itemType in basket is PHYSICAL, then this parameter will mandatory country String (ShippingAddress) Yes ** Country name of shipping address. If one of the itemType in basket is PHYSICAL, then this parameter will mandatory address String (ShippingAddress) Yes ** Address details of shipping address. If one of the itemType in basket is PHYSICAL, then this parameter will mandatory String No Zip code of shipping address. String Yes Basket Item ID String Yes Valid values are PHYSICAL,VIRTUAL String Yes Name of the item in the basket String Yes Category 1 for item in the basket. String No Category 2 for item in the basket. Decimal Yes Price value for each item. Must be greater than zero. zipCode (ShippingAddress) id (BasketItem) itemType (BasketItem) name (BasketItem) category1 (BasketItem) category2 (BasketItem) price (BasketItem) iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com Response Parameters Data Type checkoutFormContent String paymentPageUrl String token String Explanation Checkout form UI generated HTML code Iyzico payment page URL Unique key for generated checkout form Measurement unit of “tokenExpireTime” parameter is seconds. If token has expired tokenExpireTime Integer mechants should send “initializeCheckoutForm” request again. paymentId String paymentStatus String price Decimal paidPrice Decimal installment Integer basketId String binNumber String cardAssociation String cardFamily String cardType String fraudStatus Integer iyziCommissionFee Decimal iyziCommissionRateAmount Decimal Id of the payment. Merchants should keep payment ID in their system. (This id will be used for cancel requests) Shows the status of payment transaction. Valid values are;SUCCESS, FAILURE, INIT_THREEDS, CALLBACK_THREEDS, BKM_POS_SELECTED, CALLBACK_PECCO Total amount of basket. The sum of basket items’ amount must be equal to the price of basket Final price that will be captured from card. Merchants should store this value in their system. Installment value. For single installment payments, it should be 1. (Valid values: 1, 2, 3, 6, 9) Merchant's basket ID. First 6 digit of card Valid values are VISA, MASTER_CARD, AMERICAN_EXPRESS Valid values are Bonus, Axess, World, Maximum, Paraf, CardFinans, AsyaCard, ... Valid values are CREDIT_CARD, DEBIT_CARD, PREPAID_CARD Fraud risk status for payment request. Valid values are -1, 0, 1. This will always return 1 for checkout form solution iyzico commission fee for payment transaction iyzico commission rate amount for payment transaction iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com merchantCommissionRate Decimal merchantCommissionRateAmount Decimal paymentTransactionId String (ItemTransactions) itemId String (ItemTransactions) price Decimal (ItemTransactions) paidPrice Decimal (ItemTransactions) transactionStatus Integer (ItemTransactions) blockageRate Decimal (ItemTransactions) blockageRateAmountMerchant Decimal (ItemTransactions) blockageResolvedDate String (ItemTransactions) iyziCommissionFee Decimal (ItemTransactions) iyziCommissionRateAmount Decimal (ItemTransactions) merchantCommissionRate Decimal (ItemTransactions) merchantCommissionRateAmount Decimal (ItemTransactions) merchantPayoutAmount Decimal (ItemTransactions) E.g. example price=100, paidPrice=110 merchant commission rate is %10 E.g. price=100, paidPrice=110 merchant commission rate amount is 10 ID for each breakdown of payment. Merchants should keep paymentTransactionID in their system. (This id will be used for refund requests) item ID of each item in basket item price of each item in basket Captured amount from card based on each items. Merchants should keep paidPrice in their system. Status of a payment transaction. Valid values are 0, -1, 1, 2. This will always return 2 for checkout form solution Blockage rate based on each item. Blockage rate amount for merchant based on each item. Blockage resolve date base on item. Date format 2015-10-19 14:36:52 iyzico commission fee base on each item iyzico commission rate amount base on each item E.g. example item price=100, item paidPrice=110 merchant commission rate is %10 E.g. item price=100, item paidPrice=110 merchant commission rate amount is 10 Remaining amount after iyzico commission fee, rate amount and blockage amount. 2.4 Checkout Form and Payment Page Merchants have to define “<div>” tag on their web site page for checkout form. “div” tag example : <div id="iyzipay-checkout-form" class="popup"></div> Merchants may display two types checkout form For popup interface, merchants should define class of the div as “popup” For responsive interface, merchant should define class of the div as “responsive” iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com Popup Interface Responsive Interface iyzico will return paymentPageUrl parameter within initializeCheckoutForm request. Merchants who wants to use iyzico payment page instead of iyzico checkout form, should append the link on browser which is sent within paymentPageUrl parameter. iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com Merchants who wants to display iyzico payment page as iframe, should add “&iframe=true” at the end of URL which is sent within paymentPageUrl parameter. Example : paymentPageUrl = https://cpp.iyzipay.com/?token=ABCTOKENABC For iframe display : https://cpp.iyzipay.com/?token=ABCTOKENABC&iframe=true Payment with Checkout Form and Payment Page process consist of 2 steps, initializeCheckoutForm and Callback. 2.4.1 initializeCheckoutForm iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com Basket details, buyer details and callback URL are required parameters for initializeCheckoutForm request. iyzico will return “checkoutFormContent”, “paymentPageUrl” and “token” parameters within response against initializeCheckoutForm request. If the status of response is success; a-) Merchants should append “checkoutFormContent” value on their own checkout page html to display checkout form (as appending checkoutFormContent value to html body content). After merchants append “checkoutFormContent” value on their own checkout page html, checkout form UI will be displayed in <div> tag area automatically. b-) Merchants should append “paymentPageUrl” value on browser to redirect user to iyzico payment page. Buyers will populate details listed below on checkout form / payment page to start payment process. Cardholder name (mandatory) Card number (mandatory) Card expiration date (mandatory) CVC – Security code (mandatory) 3D Secure selection (optional) installment selection (optional) Note: iyzico returns “tokenExpireTime” parameter against initializeCheckoutForm request. Measurement unit of “tokenExpireTime” parameter is seconds and if token has expired mechants should send “initializeCheckoutForm” request again. iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com 2.4.2 Callback (GetAuthRequest) After all required informations entered, buyer will click to pay button. iyzico will manage payment process between cardholder’s bank and acquiring bank. When payment process completed, iyzico will send token value to “callbackUrl” which is sent by merchant already within initializeCheckoutForm request. Merchants are able to get all details about payments by using “getAuthResponse” request. Token value should send within “getAuthResponse” request. initializeCheckoutForm Request Example (Java) EcomCheckoutFormServiceClient client = new EcomCheckoutFormServiceClientImpl(configuration); EcomPaymentCheckoutFormInitializeRequest request = new EcomPaymentCheckoutFormInitializeRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setPrice(new BigDecimal("1")); request.setBasketId("B67832"); request.setPaymentSource(PaymentSourceRequestType.SHOPIFY.name()); request.setPaymentGroup(PaymentGroupRequestType.PRODUCT.name()); EcomPaymentBuyerDto buyer = new EcomPaymentBuyerDto(); buyer.setId("BY789"); buyer.setName("Sabri Onur"); buyer.setSurname("Tüzün"); buyer.setGsmNumber("+905350000000"); buyer.setEmail("[email protected]"); buyer.setIdentityNumber("74300864791"); buyer.setLastLoginDate("2015-10-05 12:43:35"); buyer.setRegistrationDate("2013-04-21 15:12:09"); buyer.setRegistrationAddress("Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy"); buyer.setIp("85.34.78.112"); buyer.setCity("İstanbul"); buyer.setCountry("Türkiye"); buyer.setZipCode("34732"); request.setBuyer(buyer); EcomPaymentShippingAddressDto shippingAddress = new EcomPaymentShippingAddressDto(); shippingAddress.setContactName("Hakan Erdoğan"); shippingAddress.setCity("İstanbul"); shippingAddress.setCountry("Türkiye"); shippingAddress.setAddress("19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı"); shippingAddress.setZipCode("34742"); request.setShippingAddress(shippingAddress); EcomPaymentBillingAddressDto billingAddress = new EcomPaymentBillingAddressDto(); billingAddress.setContactName("Hakan Erdoğan"); iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com billingAddress.setCity("İstanbul"); billingAddress.setCountry("Türkiye"); billingAddress.setAddress("19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı"); billingAddress.setZipCode("34742"); request.setBillingAddress(billingAddress); List<EcomPaymentBasketItemDto> basketItems = new ArrayList<EcomPaymentBasketItemDto>(); EcomPaymentBasketItemDto basketItem1 = new EcomPaymentBasketItemDto(); basketItem1.setId("BI101"); basketItem1.setName("ABC Marka Kolye"); basketItem1.setCategory1("Giyim"); basketItem1.setCategory2("Aksesuar"); basketItem1.setItemType(BasketItemRequestType.PHYSICAL.name()); basketItem1.setPrice(new BigDecimal("0.3")); basketItems.add(basketItem1); EcomPaymentBasketItemDto basketItem2 = new EcomPaymentBasketItemDto(); basketItem2.setId("BI102"); basketItem2.setName("XYZ Oyun Kodu"); basketItem2.setCategory1("Oyun"); basketItem2.setCategory2("Online Oyun Kodları"); basketItem2.setItemType(BasketItemRequestType.VIRTUAL.name()); basketItem2.setPrice(new BigDecimal("0.5")); basketItems.add(basketItem2); EcomPaymentBasketItemDto basketItem3 = new EcomPaymentBasketItemDto(); basketItem3.setId("BI103"); basketItem3.setName("EDC Marka Usb"); basketItem3.setCategory1("Elektronik"); basketItem3.setCategory2("Usb / Cable"); basketItem3.setItemType(BasketItemRequestType.PHYSICAL.name()); basketItem3.setPrice(new BigDecimal("0.2")); basketItems.add(basketItem3); request.setBasketItems(basketItems); request.setCallbackUrl("https://www.merchant.com/callback"); EcomPaymentCheckoutFormInitializeResponse response = client.initializeCheckoutForm(request); System.out.println("conversationId=" + response.getConversationId()); System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); System.out.println("token=" + response.getToken()); System.out.println("checkoutFormContent=" + response.getCheckoutFormContent()); System.out.println("tokenExpireTime=" + response.getTokenExpireTime()); initializeCheckoutForm Response Example (Java) conversationId=123456789 locale=tr status=success iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com errorCode=null errorMessage=null errorGroup=null systemTime=1446648399308 token=f49dec04-729a-41f3-83aa-df790e90ce34 paymentPageUrl=https://cpp.iyzipay.com/?token=f49dec04-729a-41f3-83aa-df790e90ce34 checkoutFormContent=<script type="text/javascript"> var iyziInit = {token:'f49dec04-729a-41f3-83aadf790e90ce34',price:1.00,locale:'tr',baseUrl:'http://localhost:8080', createTag:function(){ var iyziCSSTag = document.createElement('link'); iyziCSSTag.setAttribute('rel','stylesheet'); iyziCSSTag.setAttribute('type','text/css'); iyziCSSTag.setAttribute('href','http://localhost:9095/checkoutform/css/main.css'); document.head.appendChild(iyziCSSTag); var iyziJSTag = document.createElement('script'); iyziJSTag.setAttribute('src','http://localhost:9095/checkoutform/js/iyziCheckout.js '); document.head.appendChild(iyziJSTag); } } iyziInit.createTag(); </script> tokenExpireTime=1800 initializeCheckoutForm Request Example (JSON) { "locale" : "tr", "conversationId" : "123456789", "price" : 1, "basketId" : "B67832", "paymentGroup" : "PRODUCT", "buyer" : { "id" : "BY789", "name" : "Sabri Onur", "surname" : "Tüzün", "identityNumber" : "74300864791", "email" : "[email protected]", "gsmNumber" : "+905350000000", "registrationDate" : "2013-04-21 15:12:09", "lastLoginDate" : "2015-10-05 12:43:35", "registrationAddress" : "Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy", "city" : "İstanbul", "country" : "Türkiye", "zipCode" : "34732", "ip" : "85.34.78.112" }, iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com "shippingAddress" : { "address" : "19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı", "zipCode" : "34742", "contactName" : "Hakan Erdoğan", "city" : "İstanbul", "country" : "Türkiye" }, "billingAddress" : { "address" : "19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı", "zipCode" : "34742", "contactName" : "Hakan Erdoğan", "city" : "İstanbul", "country" : "Türkiye" }, "basketItems" : [ { "id" : "BI101", "price" : 0.3, "name" : "ABC Marka Kolye", "category1" : "Giyim", "category2" : "Aksesuar", "itemType" : "PHYSICAL", "subMerchantKey" : null, "subMerchantPrice" : null }, { "id" : "BI102", "price" : 0.5, "name" : "XYZ Oyun Kodu", "category1" : "Oyun", "category2" : "Online Oyun Kodları", "itemType" : "VIRTUAL", "subMerchantKey" : null, "subMerchantPrice" : null }, { "id" : "BI103", "price" : 0.2, "name" : "EDC Marka Usb", "category1" : "Elektronik", "category2" : "Usb / Cable", "itemType" : "PHYSICAL", "subMerchantKey" : null, "subMerchantPrice" : null } ], "callbackUrl" : "https://www.merchant.com/callback" } initializeCheckoutForm Response Example (JSON) { "status" : "success", "errorCode" : null, iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com "errorMessage" : null, "errorGroup" : null, "locale" : "tr", "systemTime" : 1446648399308, "conversationId" : "123456789", "token" : "f49dec04-729a-41f3-83aa-df790e90ce34", "paymentPageUrl"="https://cpp.iyzipay.com/?token= f49dec04-729a-41f3-83aadf790e90ce34" "checkoutFormContent" : "<script type=\"text/javascript\">\nvar iyziInit = {token:'f49dec04-729a-41f3-83aadf790e90ce34',price:1.00,locale:'tr',baseUrl:'http://localhost:8080',\ncreateTag:fu nction(){\nvar iyziCSSTag = document.createElement('link');\niyziCSSTag.setAttribute('rel','stylesheet');\niyzi CSSTag.setAttribute('type','text/css');\niyziCSSTag.setAttribute('href','http://loc alhost:9095/checkoutform/css/main.css');\ndocument.head.appendChild(iyziCSSTag);\nv ar iyziJSTag = document.createElement('script');\niyziJSTag.setAttribute('src','http://localhost:9 095/checkoutform/js/iyziCheckout.js');\ndocument.head.appendChild(iyziJSTag);\n}\n} \niyziInit.createTag();\n</script>\n", "tokenExpireTime" : 1800 } GetAuth Request Example (Java) EcomCheckoutFormServiceClient client = new EcomCheckoutFormServiceClientImpl(configuration); EcomRetrievePaymentCheckoutFormAuthRequest request = new EcomRetrievePaymentCheckoutFormAuthRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setToken("f49dec04-729a-41f3-83aa-df790e90ce34"); EcomRetrievePaymentCheckoutFormAuthResponse response = client.getAuthResponse(request); System.out.println("conversationId=" + response.getConversationId()); System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); System.out.println("token=" + response.getToken()); System.out.println("callbackUrl=" + response.getCallbackUrl()); System.out.println("paymentStatus=" + response.getPaymentStatus()); System.out.println("paymentId=" + response.getPaymentId()); System.out.println("price=" + response.getPrice()); System.out.println("paidPrice=" + response.getPaidPrice()); System.out.println("installment=" + response.getInstallment()); iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com System.out.println("basketId=" + response.getBasketId()); System.out.println("binNumber=" + response.getBinNumber()); System.out.println("cardAssociation=" + response.getCardAssociation()); System.out.println("cardFamily=" + response.getCardFamily()); System.out.println("cardType=" + response.getCardType()); System.out.println("cardToken=" + response.getCardToken()); System.out.println("cardUserKey=" + response.getCardUserKey()); System.out.println("fraudStatus=" + response.getFraudStatus()); System.out.println("iyziCommissionFee=" + response.getIyziCommissionFee()); System.out.println("iyziCommissionRateAmount=" + response.getIyziCommissionRateAmount()); System.out.println("merchantCommissionRate=" + response.getMerchantCommissionRate()); System.out.println("merchantCommissionRateAmount=" + response.getMerchantCommissionRateAmount()); List<EcomPaymentItemTransactionDto> itemTransactions = response.getItemTransactions(); if (itemTransactions != null && !itemTransactions.isEmpty()) { for (EcomPaymentItemTransactionDto itemTransaction : itemTransactions) { System.out.println("paymentTransactionId=" + itemTransaction.getPaymentTransactionId()); System.out.println("itemId=" + itemTransaction.getItemId()); System.out.println("paidPrice=" + itemTransaction.getPaidPrice()); System.out.println("price=" + itemTransaction.getPrice()); System.out.println("transactionStatus=" + itemTransaction.getTransactionStatus()); System.out.println("blockageRate=" + itemTransaction.getBlockageRate()); System.out.println("blockageRateAmountMerchant=" + itemTransaction.getBlockageRateAmountMerchant()); System.out.println("blockageRateAmountSubMerchant=" + itemTransaction.getBlockageRateAmountSubMerchant()); System.out.println("blockageResolvedDate=" + itemTransaction.getBlockageResolvedDate()); System.out.println("iyziCommissionFee=" + itemTransaction.getIyziCommissionFee()); System.out.println("iyziCommissionRateAmount=" + itemTransaction.getIyziCommissionRateAmount()); System.out.println("merchantCommissionRate=" + itemTransaction.getMerchantCommissionRate()); System.out.println("merchantCommissionRateAmount=" + itemTransaction.getMerchantCommissionRateAmount()); System.out.println("merchantPayoutAmount=" + itemTransaction.getMerchantPayoutAmount()); System.out.println("subMerchantKey=" + itemTransaction.getSubMerchantKey()); System.out.println("subMerchantPayoutAmount=" + itemTransaction.getSubMerchantPayoutAmount()); System.out.println("subMerchantPayoutRate=" + itemTransaction.getSubMerchantPayoutRate()); System.out.println("subMerchantPrice=" + itemTransaction.getSubMerchantPrice()); } iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com } GetAuth Response Example (Java) conversationId=null locale=null status=success errorCode=null errorMessage=null errorGroup=null systemTime=1446650532883 token=f49dec04-729a-41f3-83aa-df790e90ce34 callbackUrl=https://www.merchant.com/callback paymentStatus=SUCCESS paymentId=253 price=1.00000000 paidPrice=1.00000000 installment=1 basketId=B67832 binNumber=552879 cardAssociation=MASTER_CARD cardFamily=Paraf cardType=CREDIT_CARD cardToken=null cardUserKey=null fraudStatus=1 iyziCommissionFee=0.25000000 iyziCommissionRateAmount=0.02500000 merchantCommissionRate=0E-8 merchantCommissionRateAmount=0E-8 paymentTransactionId=53 itemId=BI101 paidPrice=0.30000000 price=0.30000000 transactionStatus=2 blockageRate=10.00000000 blockageRateAmountMerchant=0.03000000 blockageRateAmountSubMerchant=0E-8 blockageResolvedDate=2015-11-19 17:20:43 iyziCommissionFee=0.07500000 iyziCommissionRateAmount=0.00750000 merchantCommissionRate=0E-8 merchantCommissionRateAmount=0E-8 merchantPayoutAmount=0.18750000 subMerchantKey=null subMerchantPayoutAmount=0E-8 subMerchantPayoutRate=0E-8 subMerchantPrice=0E-8 paymentTransactionId=54 itemId=BI102 paidPrice=0.50000000 price=0.50000000 iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com transactionStatus=2 blockageRate=10.00000000 blockageRateAmountMerchant=0.05000000 blockageRateAmountSubMerchant=0E-8 blockageResolvedDate=2015-11-19 17:20:43 iyziCommissionFee=0.12500000 iyziCommissionRateAmount=0.01250000 merchantCommissionRate=0E-8 merchantCommissionRateAmount=0E-8 merchantPayoutAmount=0.31250000 subMerchantKey=null subMerchantPayoutAmount=0E-8 subMerchantPayoutRate=0E-8 subMerchantPrice=0E-8 paymentTransactionId=55 itemId=BI103 paidPrice=0.20000000 price=0.20000000 transactionStatus=2 blockageRate=10.00000000 blockageRateAmountMerchant=0.02000000 blockageRateAmountSubMerchant=0E-8 blockageResolvedDate=2015-11-19 17:20:43 iyziCommissionFee=0.05000000 iyziCommissionRateAmount=0.00500000 merchantCommissionRate=0E-8 merchantCommissionRateAmount=0E-8 merchantPayoutAmount=0.12500000 subMerchantKey=null subMerchantPayoutAmount=0E-8 subMerchantPayoutRate=0E-8 subMerchantPrice=0E-8 GetAuth Request Example (JSON) { "locale" : "tr", "conversationId" : "123456789", "token" : "f49dec04-729a-41f3-83aa-df790e90ce34" } GetAuth Response Example (JSON) { "status" : "success", "errorCode" : null, "errorMessage" : null, "errorGroup" : null, "locale" : null, "systemTime" : 1446650532883, iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com "conversationId" : null, "price" : 1.00000000, "paidPrice" : 1.00000000, "installment" : 1, "paymentId" : "253", "fraudStatus" : 1, "merchantCommissionRate" : 0E-8, "merchantCommissionRateAmount" : 0E-8, "iyziCommissionRateAmount" : 0.02500000, "iyziCommissionFee" : 0.25000000, "cardType" : "CREDIT_CARD", "cardAssociation" : "MASTER_CARD", "cardFamily" : "Paraf", "cardToken" : null, "cardUserKey" : null, "binNumber" : "552879", "basketId" : "B67832", "itemTransactions" : [ { "itemId" : "BI101", "paymentTransactionId" : "53", "transactionStatus" : 2, "price" : 0.30000000, "paidPrice" : 0.30000000, "merchantCommissionRate" : 0E-8, "merchantCommissionRateAmount" : 0E-8, "iyziCommissionRateAmount" : 0.00750000, "iyziCommissionFee" : 0.07500000, "blockageRate" : 10.00000000, "blockageRateAmountMerchant" : 0.03000000, "blockageRateAmountSubMerchant" : 0E-8, "blockageResolvedDate" : "2015-11-19 17:20:43", "subMerchantKey" : null, "subMerchantPrice" : 0E-8, "subMerchantPayoutRate" : 0E-8, "subMerchantPayoutAmount" : 0E-8, "merchantPayoutAmount" : 0.18750000 }, { "itemId" : "BI102", "paymentTransactionId" : "54", "transactionStatus" : 2, "price" : 0.50000000, "paidPrice" : 0.50000000, "merchantCommissionRate" : 0E-8, "merchantCommissionRateAmount" : 0E-8, "iyziCommissionRateAmount" : 0.01250000, "iyziCommissionFee" : 0.12500000, "blockageRate" : 10.00000000, "blockageRateAmountMerchant" : 0.05000000, "blockageRateAmountSubMerchant" : 0E-8, "blockageResolvedDate" : "2015-11-19 17:20:43", "subMerchantKey" : null, "subMerchantPrice" : 0E-8, iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com "subMerchantPayoutRate" : 0E-8, "subMerchantPayoutAmount" : 0E-8, "merchantPayoutAmount" : 0.31250000 }, { "itemId" : "BI103", "paymentTransactionId" : "55", "transactionStatus" : 2, "price" : 0.20000000, "paidPrice" : 0.20000000, "merchantCommissionRate" : 0E-8, "merchantCommissionRateAmount" : 0E-8, "iyziCommissionRateAmount" : 0.00500000, "iyziCommissionFee" : 0.05000000, "blockageRate" : 10.00000000, "blockageRateAmountMerchant" : 0.02000000, "blockageRateAmountSubMerchant" : 0E-8, "blockageResolvedDate" : "2015-11-19 17:20:43", "subMerchantKey" : null, "subMerchantPrice" : 0E-8, "subMerchantPayoutRate" : 0E-8, "subMerchantPayoutAmount" : 0E-8, "merchantPayoutAmount" : 0.12500000 } ], "token" : "f49dec04-729a-41f3-83aa-df790e90ce34", "callbackUrl" : "https://www.merchant.com/callback", "paymentStatus" : "SUCCESS" } 2.5 Cancel Regarding to bank’s regulations and rules, merchants are able to cancel any payment within the same day that payment received (Before banks perform their own reconciliation). If cancel request has apllied, payment will not shown in credit card statement. paymentId parameter is required for cancel. Status parameter will return in reponse and if status value is success, amount of transaction (price) will return in response too. API Service (Endpoint) Name: /payment/iyzipos/cancel Method: HTTP POST Request Example (Java) EcomPaymentServiceClient client = new EcomPaymentServiceClientImpl(configuration); iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com PaymentCancelRequest request = new PaymentCancelRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setPaymentId("3031"); request.setIp("85.34.78.112"); PaymentCancelResponse response = client.cancel(request); System.out.println("conversationId=" + response.getConversationId()); System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); System.out.println("paymentId=" + response.getPaymentId()); System.out.println("price=" + response.getPrice()); Response Example (Java) conversationId=123456789 locale=tr status=success errorCode=null errorMessage=null errorGroup=null systemTime=1445239960166 paymentId=3031 price=1.10000000 Request Example (JSON) { "locale" : "tr", "conversationId" : "123456789", "paymentId" : "3031", "ip" : "85.34.78.112" } Response Example (JSON) { "status" : "success", iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com "locale" : "tr", "systemTime" : 1445239960166, "conversationId" : "123456789", "paymentId" : "3031", "price" : 1.10000000 } 2.6 Refund Merchants are able to refund any payment 24/7, 365 days. Refund transactions will shown in buyer’s card statement. Merchants are able to refund all amount or partial amount of any payment. Refund amount can’t be greater than total amount. item paidPrice =100 TL , refundPrice can not be greater than 100 TL. item paidPrice =100 TL, refundPrice 80 TL = price after refund will be 20 TL. For next refund request, refundPrice must be between 0.01 TL and 20 TL. API Service (Endpoint) Name: /payment/iyzipos/refund Method: HTTP POST Request Example (Java) EcomPaymentServiceClient client = new EcomPaymentServiceClientImpl(configuration); PaymentRefundRequest request = new PaymentRefundRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setPaymentTransactionId("1543"); request.setPrice(new BigDecimal("3.3")); request.setIp("85.34.78.112"); PaymentRefundResponse response = client.refund(request); System.out.println("conversationId=" + response.getConversationId()); iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); System.out.println("paymentId=" + response.getPaymentId()); System.out.println("paymentTransactionId=" + response.getPaymentTransactionId()); System.out.println("price=" + response.getPrice()); Response Example (Java) conversationId=123456789 locale=tr status=success errorCode=null errorMessage=null errorGroup=null systemTime=1445240504793 paymentId=3032 paymentTransactionId=1543 price=3.3 Request Example (JSON) { "locale" : "tr", "conversationId" : "123456789", "paymentTransactionId" : "1543", "price" : 3.3, "ip" : "85.34.78.112" } Response Example (JSON) { "status" : "success", "locale" : "tr", "systemTime" : 1445240504793, "conversationId" : "123456789", "paymentId" : "3032", "paymentTransactionId" : "1543", "price" : 3.3 } iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com iyzico Ödeme Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-mail: [email protected] Web: www.iyzico.com
Benzer belgeler
iyzico Integration Document
and PKI (public key infrastructure) encryption / decryption.
iyzico Teknoloji Ödeme ve Elektronik Para Hizmetleri A.Ş. Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah.
Bora Sok. No:1 ...
iyzico API Dokümantasyonu
CreateSubMerchantRequest request = new CreateSubMerchantRequest();
request.setLocale(RequestLocaleType.TR.getValue());
request.setConversationId("123456789");
request.setSubMerchantExternalId("B...