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

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 ...

Detaylı

iyzico API Dokümantasyonu

iyzico API Dokümantasyonu CreateSubMerchantRequest request = new CreateSubMerchantRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setSubMerchantExternalId("B...

Detaylı

BKM Express Dökümantasyonu

BKM Express Dökümantasyonu buyer.setCountry("Turkiye"); buyer.setZipCode("34840");

Detaylı