When customers complete the bank transfer process, they are redirected to the callbackUrl and a token is posted to this url. Here, a retrieve result request should be made for the token. In the response, paymentStatus value should be checked. It is possible to check the status of bank transfer periodically. Or you can listen webhookURL to receive a notification from iyzico. So you can update your system accordingly.
The service/product should not be provided to the customer until the paymentStatus of bank transfer is SUCCESS.
The notification sample that is sent to WebhookURL (when the transfer matches with transaction)
{
"iyziEventTime": "1569325868970",
"iyziEventType": "BANK_TRANSFER_AUTH",
"iyziReferenceCode": "028246012345",
"status": "SUCCESS",
"token": "04de1234-32b9-6907-bf06-0987ae260e35"
}
Parameters to be sent to the service:
Output Name | Type | Description |
---|---|---|
status | String | Service response result (success / failure) |
paymentStatus | String | Shows the status of payment. Success means payment is received. INIT_BANK_TRANSFER means transfer is not conmpleted yet. SUCCESS, FAILURE, INIT_BANK_TRANSFER |
errorCode | String | Error code if service response status is failure |
errorMessage | String | Error message if service response status is failure |
errorGroup | String | Error group if service response status is failure |
locale | String | Language (default: tr) |
systemTime | Long | Response system timestamp value |
conversationId | String | If set, conversation ID to match request and response |
paymentId | String | ID of the payment. Merchants should keep payment ID in their system (this ID will be used for cancel requests) |
price | Decimal | Total amount of basket. The sum of basket items’ amount must be equal to the price of basket |
paidPrice | Decimal | Final amount (including installment fee) that will be charged to customer’s card. Merchants should store this value in their system |
currency | String | Currency of request |
installment | Integer | Installment number of payment, for single payments it returns 1. Valid values are 1, 2, 3, 6, 9, 12 |
basketId | String | Merchant's basket ID |
binNumber | String | First 6 digit of card |
cardAssociation | String | Valid values are VISA, MASTER_CARD, AMERICAN_EXPRESS, TROY |
cardFamily | String | Valid values are Bonus, Axess, World, Maximum, Paraf, CardFinans, Advantage |
cardType | String | Valid values are CREDIT_CARD, DEBIT_CARD, PREPAID_CARD |
fraudStatus | Integer | Fraud risk status for payment request (0 for review / 1 for accept) |
iyziCommissionFee | Decimal | iyzico commission fee for payment transaction |
iyziCommissionRateAmount | Decimal | iyzico commission rate amount for payment transaction |
merchantCommissionRate | Decimal | Merchant commission rate (e.g. price=100 & paidPrice=110, then merchant commission rate = 10) |
merchantCommissionRateAmount | Decimal | Merchant commission rate amount (e.g. price=100 & paidPrice=110, then merchant commission rate amount = 10) |
paymentTransactionId (ItemTransactions) | String | ID of basket item. Merchants should keep payment ID in their system (this ID will be used for cancel requests) |
itemId(ItemTransactions) | String | Item ID of each item in basket |
price(ItemTransactions) | Decimal | Item price of each item in basket |
paidPrice(ItemTransactions) | Decimal | Captured amount from card based on each item. Merchants should keep paidPrice in their system |
transactionStatus (ItemTransactions) | Integer | Status of a payment transaction. (0 for waiting / -1 for rejected by fraud / 1 for waiting for approval / 2 for approved |
blockageRate(ItemTransactions) | Decimal | Blockage rate based on each item. |
blockageRateAmountMerchant(ItemTransactions) | Decimal | Blockage rate amount for merchant based on each item |
blockageResolvedDate(ItemTransactions) | String | Blockage resolve date based on each item. Date format should be “2015-10-19 14:36:52” |
iyziCommissionFee(ItemTransactions) | Decimal | iyzico commission fee based on each item |
iyziCommissionRateAmount(ItemTransactions) | Decimal | iyzico commission rate amount based on each item |
merchantCommissionRate(ItemTransactions) | Decimal | Merchant commission rate (e.g. price=100 & paidPrice=110, then merchant commission rate = 10) |
merchantCommissionRateAmount(ItemTransactions) | Decimal | Merchant commission rate amount (e.g. price=100 & paidPrice=110, then merchant commission rate amount = 10) |
merchantPayoutAmount(ItemTransactions) | Decimal | Payout amount for each item transaction. This is the amount that remains after after substracting iyzicoCommissionRateAmount, iyzicoCommissionFee and blockageRateAmountMerchant from paidPrice(ItemTransactions) |
paidPrice(ItemTransactions)(convertedPayout) | Decimal | Converted charged amount to card based on each item. Merchants should keep paidPrice in their system. |
iyziCommissionFee(ItemTransactions)(convertedPayout) | Decimal | Converted iyzico commission fee based on each item |
iyziCommissionRateAmount(ItemTransactions)(convertedPayout) | Decimal | Converted iyzico commission rate amount based on each item |
blockageRateAmountMerchant(ItemTransactions)(convertedPayout) | Decimal | Converted blockage rate amount for merchant based on each item |
merchantPayoutAmount(ItemTransactions)(convertedPayout) | Decimal | Converted payout amount for each item transaction. This the amount that remains after substracting iyzicoCommissionRateAmount, iyzicoCommissionFee and blockageRateAmountMerchant from paidPrice(ItemTransactions) |
iyziConversationRate(ItemTransactions)(convertedPayout) | Decimal | iyzico conversation rate |
iyziConversationRateAmount(ItemTransactions)(convertedPayout) | Decimal | iyzico conversation rate amount |
currency(ItemTransactions)(convertedPayout) | String | Currency for payout conversion |
$request = new \Iyzipay\Request\RetrieveCheckoutFormRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");
$request->setToken("token");
$checkoutForm = \Iyzipay\Model\CheckoutForm::retrieve($request, Config::options());
RetrieveCheckoutFormRequest request = new RetrieveCheckoutFormRequest();
request.ConversationId = "123456789";
request.Token = "token";
CheckoutForm checkoutForm = CheckoutForm.Retrieve(request, options);
RetrieveCheckoutFormRequest request = new RetrieveCheckoutFormRequest();
request.setLocale(Locale.TR.getValue());
request.setConversationId("123456789");
request.setToken("token");
CheckoutForm checkoutForm = CheckoutForm.retrieve(request, options);
iyzipay.checkoutForm.retrieve({
locale: Iyzipay.LOCALE.TR,
conversationId: '123456789',
token: 'token'
}, function (err, result) {
console.log(err, result);
done();
});
request = {
locale: 'tr',
conversationId: '123456789',
token: 'b4d8088e-ce35-452d-94c9-d5bd9f385557'
}
checkout_form_payment = Iyzipay::Model::CheckoutForm.new.retrieve(request, @options)
request = dict([('locale', 'tr')])
request['conversationId'] = '123456789'
request['token'] = 'token'
checkout_form_auth = iyzipay.CheckoutFormAuth()
checkout_form_auth_response = checkout_form_auth.retrieve(request, options)
//Request
{
"locale": "tr",
"conversationId": "123456789",
"token": "d9a1d90e-7cfb-4ead-a6ec-34237bac04f0"
}
//Response
{
"status": "success",
"locale": "tr",
"systemTime": 1470731191116,
"conversationId": "123456789",
"price": 1,
"paidPrice": 1.2,
"installment": 1,
"paymentId": "26143",
"fraudStatus": 1,
"merchantCommissionRate": 20,
"merchantCommissionRateAmount": 0.2,
"iyziCommissionRateAmount": 0.0354,
"iyziCommissionFee": 0.25,
"cardType": "CREDIT_CARD",
"cardAssociation": "MASTER_CARD",
"cardFamily": "Cardfinans",
"cardToken": "mIbv1i4Tkjhmp/7BQQWa6zjeebQ=",
"cardUserKey": "ycXvjM2Z/n94gk7MIc3JoamsDKk=",
"binNumber": "531157",
"basketId": "B67832",
"currency": "TRY",
"itemTransactions": [
{
"itemId": "BI101",
"paymentTransactionId": "38226",
"transactionStatus": 2,
"price": 0.3,
"paidPrice": 0.36,
"merchantCommissionRate": 20,
"merchantCommissionRateAmount": 0.06,
"iyziCommissionRateAmount": 0.01062,
"iyziCommissionFee": 0.075,
"blockageRate": 10,
"blockageRateAmountMerchant": 0.036,
"blockageRateAmountSubMerchant": 0,
"blockageResolvedDate": "2016-08-16 11:25:58",
"subMerchantPrice": 0,
"subMerchantPayoutRate": 0,
"subMerchantPayoutAmount": 0,
"merchantPayoutAmount": 0.23838,
"convertedPayout": {
"paidPrice": 0.36,
"iyziCommissionRateAmount": 0.01062,
"iyziCommissionFee": 0.075,
"blockageRateAmountMerchant": 0.036,
"blockageRateAmountSubMerchant": 0,
"subMerchantPayoutAmount": 0,
"merchantPayoutAmount": 0.23838,
"iyziConversionRate": 0,
"iyziConversionRateAmount": 0,
"currency": "TRY"
}
},
{
"itemId": "BI102",
"paymentTransactionId": "38227",
"transactionStatus": 2,
"price": 0.5,
"paidPrice": 0.6,
"merchantCommissionRate": 20,
"merchantCommissionRateAmount": 0.1,
"iyziCommissionRateAmount": 0.0177,
"iyziCommissionFee": 0.125,
"blockageRate": 10,
"blockageRateAmountMerchant": 0.06,
"blockageRateAmountSubMerchant": 0,
"blockageResolvedDate": "2016-08-16 11:25:58",
"subMerchantPrice": 0,
"subMerchantPayoutRate": 0,
"subMerchantPayoutAmount": 0,
"merchantPayoutAmount": 0.3973,
"convertedPayout": {
"paidPrice": 0.6,
"iyziCommissionRateAmount": 0.0177,
"iyziCommissionFee": 0.125,
"blockageRateAmountMerchant": 0.06,
"blockageRateAmountSubMerchant": 0,
"subMerchantPayoutAmount": 0,
"merchantPayoutAmount": 0.3973,
"iyziConversionRate": 0,
"iyziConversionRateAmount": 0,
"currency": "TRY"
}
},
{
"itemId": "BI103",
"paymentTransactionId": "38228",
"transactionStatus": 2,
"price": 0.2,
"paidPrice": 0.24,
"merchantCommissionRate": 20,
"merchantCommissionRateAmount": 0.04,
"iyziCommissionRateAmount": 0.00708,
"iyziCommissionFee": 0.05,
"blockageRate": 10,
"blockageRateAmountMerchant": 0.024,
"blockageRateAmountSubMerchant": 0,
"blockageResolvedDate": "2016-08-16 11:25:58",
"subMerchantPrice": 0,
"subMerchantPayoutRate": 0,
"subMerchantPayoutAmount": 0,
"merchantPayoutAmount": 0.15892,
"convertedPayout": {
"paidPrice": 0.24,
"iyziCommissionRateAmount": 0.00708,
"iyziCommissionFee": 0.05,
"blockageRateAmountMerchant": 0.024,
"blockageRateAmountSubMerchant": 0,
"subMerchantPayoutAmount": 0,
"merchantPayoutAmount": 0.15892,
"iyziConversionRate": 0,
"iyziConversionRateAmount": 0,
"currency": "TRY"
}
}
],
"token": "d9a1d90e-7cfb-4ead-a6ec-34237bac04f0",
"callbackUrl": "https://www.merchant.com/callback",
"paymentStatus": "SUCCESS"
}
Örnek Kodlar