PayU iyzico

Follow the standard PaymentsOS integration procedure, and then apply the relevant extra specifications in this section to integrate with PayU iyzico.

API Version

Minimum required API version: 1.3.0

Payment Methods

The following table lists all supported payment methods.

Payment MethodPayment Method TypeNotes
American ExpressCards
Pay with iyzicoeWallet
TroyCardsThis is a local card vendor.



Payout currencies: EUR,GBP,TRY,USD


The following table provides an overview of all supported and non-supported features.

3DS 2.0 ExternalNo
3DS 2.0 PaymentsOS-handledNo
3DS 2.0 Provider-handledNo
3DS 2.0 Self-handledNo
Level 2 and 3 DataNo
Multi-seller PaymentsYes
Network TokensNo
Payment FacilitatorNo
PayU RiskNo
Retrieve Supported Payment MethodsNo
Retrieve Supported PlansYes
Statement Soft DescriptorNo
Stored Credentials FlagNo
Transaction Processing without CVVYes


The following table lists all supported requests. Use the bodybuilder to create a sample request body for each request type.

Supported requests for card transactions.
AuthorizePartial and multiple are not supportedSynchronous
Capture Partial is supportedSynchronous
Charge Not ApplicableSynchronous
Refund Both partial and multiple are supportedSynchronous
Void Both partial and multiple are supportedSynchronous
Supported requests for eWallet transactions.
Charge Not ApplicableAsynchronous
RefundPartial and multiple are not supportedSynchronous

Setup Procedures

The following table lists the setup procedures that are specific to this provider.

In the PaymentsOS Control Center, configure the following credentials:
  • apiKey: The password name supplied by PayU iyzico
  • clientSecret: The client secret provided by PayU iyzico.
In your PayU iyzico account, make sure the following webhooks are configured:

  • For production:
  • For sandbox:
Contact PayU iyzico support for assistance.
In your PayU iyzico account, make sure the following notification URLs are configured for manual fraud reviews:

  • For production:
  • For sandbox:
Contact PayU iyzico support for assistance.
In your PayU iyzico account, make sure the x-iyz-signature request signature is enabled. Contact PayU iyzico support for assistance.Required

Integration Procedures

The following sections list the integration procedures that are specific to this provider.

Enabling 3DS

If you want the user to complete a 3DS authentication step, then include a provider_specific_data object with an is3ds value of true in your Create Charge API request.

"provider_specific_data": {
    "payuiyzico": {
      "additional_details": {
        "is3ds": "true"

Showing Customers Available Installment Options during Checkout

If you configured different installment plans in your PayU iyzico account, then you can fetch those plans and display the various installment options in your checkout page when a customer initiates the payment. To do so, call the Retrieve Supported Plans request. Make sure to pass the transaction amount and currency for which to fetch the available plans as query parameters.

The response of the Retrieve Supported Plans request will include for each plan the number of allowed installments and their corresponding fee (that is, the fee charged by the issuer). You then pass in installments.number_of_installments the number of installments allowed by the plan selected by the customer. Here’s an example:

  "installments": {
      "number_of_installments": 12

Implementing Shopping Credit with Pay with iyzico

Shopping credit offered through the ‘Pay with iyzico’ digital wallet is a popular payment option in Turkey. It functions as a digital version of loans provided by local banks, integrated seamlessly into the shopping process on iyzico.

To offer shopping credit to your shoppers, simply invoke the Create Charge request for the ‘Pay with iyzico’ payment method and include the provider_specific_data.payuiyzico.additional_details.product_category field to indicate the category to which the purchased item belongs:

  "merchant_site_url": "",
  "payment_method": {
    "source_type": "ewallet",
    "type": "untokenized",
    "vendor": "pay_with_iyzico"
  "provider_specific_data": {
    "payuiyzico": {
      "additional_details": {
        "buyer_identityNumber": "123456",
        "product_category": "TABLET"
  "reconciliation_id": "40762342"

The product_category field can have one of the following values:

  • For gold: GOLD
  • For food: FOOD
  • For mobile phone: PHONE
  • For Tablet: TABLET
  • For Computer, desktop or laptop: PC

It is important to keep in mind the following caveats:

  • When a shopper buys multiple products, it is important to specify the category of the item that has the most restrictive regulations regarding shopping credit. The order of restriction, from the most stringent to the least strict, is as follows: Gold and Food > Phone > Tablet > Computer.

  • If you do not provide a category, the default value of general will be automatically assigned.

  • Shopping credit will not be available as a payment option for products in the GOLD and FOOD categories.

  • For products in the PHONE and TABLET categories, the purchase amount will determine the number of installments offered to the shopper. See Available Installments for Products in the Phone and Tablet Categories below.

Available Installments for Products in the Phone, Tablet and PC Categories

For products in the PHONE, TABLET and PC categories, the purchase amount will determine the maximum number of installments offered to the shopper:

  • PHONE:

    • Above 12.000 TL: 3 installments
    • Below 12.000 TL: 12 installments
  • TABLET: 6 installments

  • PC: 12 installments

Errors in a Redirection Flow

In a redirection flow, customers finalize a transaction on a third-party site and are then directed back to your web page (the merchant_site_url) where you inform them of the status of their payment. Of course, there’s always a chance of an unexpected error (such as a provider communication timeout) in this process. If an error does occur, we’ll let you know about it by appending the type of error (api_error or provider_error) to the merchant_site_url. If available, we will also include the ID of the original payment request and related transaction request (action).

Here’s an example.



Test Cards

The following test cards can be used to simulate a successful payment:

Card Number Bank Card type
5890040000000016 Akbank Master Card (Debit)
5526080000000006 Akbank Master Card (Credit)
4766620000000001 Denizbank Visa (Debit)
4603450000000000 Denizbank Visa (Credit)
4987490000000002 Finansbank Visa (Debit)
5311570000000005 Finansbank Master Card (Credit)
9792020000000001 Finansbank Troy (Debit)
9792030000000000 Finansbank Troy (Credit)
5170410000000004 Garanti Bankası Master Card (Debit)
5400360000000003 Garanti Bankası Master Card (Credit)
374427000000003 Garanti Bankası American Express
4475050000000003 Halkbank Visa (Debit)
5528790000000008 Halkbank Master Card (Credit)
4059030000000009 HSBC Bank Visa (Debit)
5504720000000003 HSBC Bank Master Card (Credit)
5892830000000000 Türkiye İş Bankası Master Card (Debit)
4543590000000006 Türkiye İş Bankası Visa (Credit)
4910050000000006 Vakıfbank Visa (Debit)
4157920000000002 Vakıfbank Visa (Credit)
5168880000000002 Yapı ve Kredi Bankası Master Card (Debit)
5451030000000000 Yapı ve Kredi Bankası Master Card (Credit)

Cross border test cards:

Card Number Country
5400010000000004 Non-Turkish (Credit)
4054180000000007 Non-Turkish (Debit)

Test cards to get specific error codes:

Card Number Description
5406670000000009 Success but cannot be cancelled, refund or post auth
4111111111111129 Not sufficient funds
4129111111111111 Do not honour
4128111111111112 Invalid transaction
4125111111111115 Expired card
4124111111111116 Invalid cvc2
4123111111111117 Not permitted to card holder
4122111111111118 Not permitted to terminal
4121111111111119 Fraud suspect
Last modified July 5, 2023