After the approval of the marketplace transaction, submerchants are required to have records at iyzico APIs to facilitate the money transfer. Since the merchant already has access to the submerchant details such like, email, address, name, taxoffice, it can be seamlessly transmitted to the iyzico Onboarding API for submerchant account creation and updates.
Submerchant Services
Submerchant Creation
Possible submerchants can be one of the following 3 types:
Limited/Incorporated Company.
The parameters sent during the sub-merchant registration process may vary depending on the specific transaction type. Upon the completion of a sub-merchant registration, the response will include a unique subMerchantKey assigned to that particular seller. It is essential to securely store this value within your system, as you will need to provide the subMerchantKey
when identifying the seller during the payment process.
When transmitting parameters to iyzico, it is crucial to ensure that all values are genuine and accurately reflect the required information. Please refrain from sending random, test, or non-authentic data.
Individual Submerchant Request
POST
https://api.iyzipay.com/onboarding/submerchant
Request Body
If set, conversation ID to match request and response
Merchant identification number on your system
The PERSONAL value must be sent for the individual type of submerchants .
Contact name of submerchant
IBAN of submerchant. Its expected that contactName and contactSurname matches with IBAN. Even if it left blank while creating the submerchant, it must be filled before approving the payment.
Default is TL. Alternatives; USD, EUR, GBP, CHF and NOK
Sole Proprietorship Submerchant Request
POST
https://api.iyzipay.com/onboarding/submerchant
Request Body
If set, conversation ID to match request and response
Merchant identification number on your system
The PRIVATE_COMPANY value must be sent for the sole proprietorshop type of submerchants .
Contact name of submerchant
IBAN of submerchant. Its expected that contactName and contactSurname matches with IBAN. Even if it left blank while creating the submerchant, it must be filled before approving the payment.
Default is TL. Alternatives; USD, EUR, GBP, CHF and NOK
Tax office of submerchant
Legal Company Title of submerchant
Limited/Incorporated Company Submerchant Request
POST
https://api.iyzipay.com/onboarding/submerchant
Request Body
If set, conversation ID to match request and response
Merchant identification number on your system
The LIMITED_OR_JOINT_STOCK_COMPANY value must be sent for the sole proprietorshop type of submerchants .
Contact name of submerchant
IBAN of submerchant. Its expected that contactName and contactSurname matches with IBAN. Even if it left blank while creating the submerchant, it must be filled before approving the payment.
Default is TL. Alternatives; USD, EUR, GBP, CHF and NOK
Legal Company Title of submerchant
Tax number of submerchant
Tax office of submerchant
Submerchant Creation Response
Output Name
Type
Description
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
Response system timestamp value
If set, conversation ID to match request and response
Submerchant Creation Sample Codes
Individual Submerchant Creation Request;
PHP .NET JAVA NodeJS Python Ruby JSON
Copy $request = new \Iyzipay\Request\CreateSubMerchantRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");
$request->setSubMerchantExternalId("S49222");
$request->setSubMerchantType(\Iyzipay\Model\SubMerchantType::PERSONAL);
$request->setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
$request->setContactName("John");
$request->setContactSurname("Doe");
$request->setEmail("email@submerchantemail.com");
$request->setGsmNumber("+905350000000");
$request->setName("John's market");
$request->setIban("TR180006200119000006672315");
$request->setIdentityNumber("31300864726");
$request->setCurrency(\Iyzipay\Model\Currency::TL);
$subMerchant = \Iyzipay\Model\SubMerchant::create($request, Config::options());
Copy CreateSubMerchantRequest request = new CreateSubMerchantRequest();
request.Locale = Locale.TR.ToString();
request.ConversationId = "123456789";
request.SubMerchantExternalId = "S49222";
request.SubMerchantType = SubMerchantType.PERSONAL.ToString();
request.Address = "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1";
request.ContactName = "John";
request.ContactSurname = "Doe";
request.Email = "email@submerchantemail.com";
request.GsmNumber = "+905350000000";
request.Name = "John's market";
request.Iban = "TR180006200119000006672315";
request.IdentityNumber = "31300864726";
request.Currency = Currency.TRY.ToString();
SubMerchant subMerchant = SubMerchant.Create(request, options);
Copy CreateSubMerchantRequest request = new CreateSubMerchantRequest();
request.setLocale(Locale.TR.getValue());
request.setConversationId("123456789");
request.setSubMerchantExternalId("S49222");
request.setSubMerchantType(SubMerchantType.PERSONAL.name());
request.setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
request.setContactName("John");
request.setContactSurname("Doe");
request.setEmail("email@submerchantemail.com");
request.setGsmNumber("+905350000000");
request.setName("John's market");
request.setIban("TR180006200119000006672315");
request.setIdentityNumber("31300864726");
request.setCurrency(Currency.TRY.name());
SubMerchant subMerchant = SubMerchant.create(request, options);
Copy iyzipay.subMerchant.create({
locale: Iyzipay.LOCALE.TR,
conversationId: '123456789',
subMerchantExternalId: 'S49222',
subMerchantType: Iyzipay.SUB_MERCHANT_TYPE.PERSONAL,
address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
ContactName: 'John',
ContactSurname: 'Doe',
email: 'email@submerchantemail.com',
gsmNumber: '+905350000000',
name: 'John\'s market',
iban: 'TR180006200119000006672315',
identityNumber: '31300864726',
currency: Iyzipay.CURRENCY.TRY
}, function (err, result) {
console.log(err, result);
done();
});
Copy request = dict([('locale', 'tr')])
request['conversationId'] = '123456789'
request['subMerchantExternalId'] = 'S49222'
request['subMerchantType'] = 'PERSONAL'
request['address'] = 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1'
request['ContactName'] = 'John'
request['ContactSurname'] = 'Doe'
request['email'] = 'email@submerchantemail.com'
request['gsmNumber'] = '+905350000000'
request['name'] = 'John\'s market'
request['iban'] = 'TR180006200119000006672315'
request['identityNumber'] = '31300864726'
request['currency'] = 'TRY'
sub_merchant = iyzipay.SubMerchant()
sub_merchant_response = sub_merchant.create(request, options)
Copy request = {
locale: 'tr',
conversationId: '123456789',
subMerchantExternalId: 'S49222',
subMerchantType: Iyzipay::Model::SubMerchantType::PERSONAL,
address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
ContactName: 'John',
ContactSurname: 'Doe',
email: 'email@submerchantemail.com',
gsmNumber: '+905350000000',
name: 'John\'s market',
iban: 'TR180006200119000006672315',
identityNumber: '31300864726',
currency: Iyzipay::Model::Currency::TRY
}
sub_merchant = Iyzipay::Model::SubMerchant.new.create(request, @options)
Copy //Request
{
"locale": "tr",
"conversationId": "123456789",
"name": "John's market",
"email": "email@submerchantemail.com",
"gsmNumber": "+905350000000",
"address": "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1",
"iban": "TR180006200119000006672315",
"ContactName": "John",
"ContactSurname": "Doe",
"currency": "TRY",
"subMerchantExternalId": "S49222",
"identityNumber": "31300864726",
"subMerchantType": "PERSONAL"
}
//Response
{
"status": "success",
"locale": "tr",
"systemTime": 1470732341410,
"conversationId": "123456789",
"subMerchantKey": "PPFFZPedVQSvaOqZu5xpvpLEqmc="
}
Sole Proprietorship Submerchant Creation Request;
PHP .NET JAVA NodeJS Python Ruby JSON
Copy $request = new \Iyzipay\Request\CreateSubMerchantRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");
$request->setSubMerchantExternalId("S49222");
$request->setSubMerchantType(\Iyzipay\Model\SubMerchantType::PRIVATE_COMPANY);
$request->setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
$request->setTaxOffice("Tax office");
$request->setLegalCompanyTitle("John Doe inc");
$request->setEmail("email@submerchantemail.com");
$request->setGsmNumber("+905350000000");
$request->setName("John's market");
$request->setIban("TR180006200119000006672315");
$request->setIdentityNumber("31300864726");
$request->setCurrency(\Iyzipay\Model\Currency::TL);
$subMerchant = \Iyzipay\Model\SubMerchant::create($request, Config::options());
Copy CreateSubMerchantRequest request = new CreateSubMerchantRequest();
request.Locale = Locale.TR.ToString();
request.ConversationId = "123456789";
request.SubMerchantExternalId = "S49222";
request.SubMerchantType = SubMerchantType.PRIVATE_COMPANY.ToString();
request.Address = "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1";
request.TaxOffice = "Tax office";
request.LegalCompanyTitle = "John Doe inc";
request.Email = "email@submerchantemail.com";
request.GsmNumber = "+905350000000";
request.Name = "John's market";
request.Iban = "TR180006200119000006672315";
request.IdentityNumber = "31300864726";
request.Currency = Currency.TRY.ToString();
SubMerchant subMerchant = SubMerchant.Create(request, options);
Copy CreateSubMerchantRequest request = new CreateSubMerchantRequest();
request.setLocale(Locale.TR.getValue());
request.setConversationId("123456789");
request.setSubMerchantExternalId("S49222");
request.setSubMerchantType(SubMerchantType.PRIVATE_COMPANY.name());
request.setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
request.setTaxOffice("Tax office");
request.setLegalCompanyTitle("John Doe inc");
request.setEmail("email@submerchantemail.com");
request.setGsmNumber("+905350000000");
request.setName("John's market");
request.setIban("TR180006200119000006672315");
request.setIdentityNumber("31300864726");
request.setCurrency(Currency.TRY.name());
SubMerchant subMerchant = SubMerchant.create(request, options);
Copy iyzipay.subMerchant.create({
locale: Iyzipay.LOCALE.TR,
conversationId: '123456789',
subMerchantExternalId: 'S49222',
subMerchantType: Iyzipay.SUB_MERCHANT_TYPE.PRIVATE_COMPANY,
address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
taxOffice: 'Tax office',
legalCompanyTitle: 'John Doe inc',
email: 'email@submerchantemail.com',
gsmNumber: '+905350000000',
name: 'John\'s market',
iban: 'TR180006200119000006672315',
identityNumber: '31300864726',
currency: Iyzipay.CURRENCY.TRY
}, function (err, result) {
console.log(err, result);
done();
});
Copy request = dict([('locale', 'tr')])
request['conversationId'] = '123456789'
request['subMerchantExternalId'] = 'S49222'
request['subMerchantType'] = 'PRIVATE_COMPANY'
request['address'] = 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1'
request['taxOffice'] = 'Tax Office'
request['legalCompanyTitle'] = 'John Doe inc'
request['email'] = 'email@submerchantemail.com'
request['gsmNumber'] = '+905350000000'
request['name'] = 'John\'s market'
request['iban'] = 'TR180006200119000006672315'
request['identityNumber'] = '31300864726'
request['currency'] = 'TRY'
sub_merchant = iyzipay.SubMerchant()
sub_merchant_response = sub_merchant.create(request, options)
Copy request = {
locale: 'tr',
conversationId: '123456789',
subMerchantExternalId: 'S49222',
subMerchantType: Iyzipay::Model::SubMerchantType::PRIVATE_COMPANY,
address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
taxOffice: 'Tax office',
legalCompanyTitle: 'John Doe inc',
email: 'email@submerchantemail.com',
gsmNumber: '+905350000000',
name: 'John\'s market',
iban: 'TR180006200119000006672315',
identityNumber: '31300864726',
currency: Iyzipay::Model::Currency::TRY
}
sub_merchant = Iyzipay::Model::SubMerchant.new.create(request, @options)
Copy //Request
{
"locale": "tr",
"conversationId": "123456789",
"name": "John's market",
"email": "email@submerchantemail.com",
"gsmNumber": "+905350000000",
"address": "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1",
"iban": "TR180006200119000006672315",
"taxOffice": "Tax office",
"legalCompanyTitle": "John Doe inc",
"currency": "TRY",
"subMerchantExternalId": "S49222",
"identityNumber": "31300864726",
"subMerchantType": "PRIVATE_COMPANY"
}
//Response
{
"status": "success",
"locale": "tr",
"systemTime": 1470732341410,
"conversationId": "123456789",
"subMerchantKey": "PPFFZPedVQSvaOqZu5xpvpLEqmc="
}
Limited/Incorporated Company Submerchant Creation Request;
PHP .NET JAVA NodeJS Python Ruby JSON
Copy $request = new \Iyzipay\Request\CreateSubMerchantRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");
$request->setSubMerchantExternalId("S49222");
$request->setSubMerchantType(\Iyzipay\Model\SubMerchantType::LIMITED_OR_JOINT_STOCK_COMPANY);
$request->setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
$request->setTaxOffice("Tax office");
$request->setTaxNumber("31300864726");
$request->setLegalCompanyTitle("John Doe inc");
$request->setEmail("email@submerchantemail.com");
$request->setGsmNumber("+905350000000");
$request->setName("John's market");
$request->setIban("TR180006200119000006672315");
$request->setCurrency(\Iyzipay\Model\Currency::TL);
$subMerchant = \Iyzipay\Model\SubMerchant::create($request, Config::options());
Copy CreateSubMerchantRequest request = new CreateSubMerchantRequest();
request.Locale = Locale.TR.ToString();
request.ConversationId = "123456789";
request.SubMerchantExternalId = "S49222";
request.SubMerchantType = SubMerchantType.LIMITED_OR_JOINT_STOCK_COMPANY.ToString();
request.Address = "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1";
request.TaxOffice = "Tax office";
request.TaxNumber = "31300864726";
request.LegalCompanyTitle = "John Doe inc";
request.Email = "email@submerchantemail.com";
request.GsmNumber = "+905350000000";
request.Name = "John's market";
request.Iban = "TR180006200119000006672315";
request.Currency = Currency.TRY.ToString();
SubMerchant subMerchant = SubMerchant.Create(request, options);
Copy CreateSubMerchantRequest request = new CreateSubMerchantRequest();
request.setLocale(Locale.TR.getValue());
request.setConversationId("123456789");
request.setSubMerchantExternalId("S49222");
request.setSubMerchantType(SubMerchantType.LIMITED_OR_JOINT_STOCK_COMPANY.name());
request.setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
request.setTaxOffice("Tax office");
request.setTaxNumber("31300864726");
request.setLegalCompanyTitle("John Doe inc");
request.setEmail("email@submerchantemail.com");
request.setGsmNumber("+905350000000");
request.setName("John's market");
request.setIban("TR180006200119000006672315");
request.setCurrency(Currency.TRY.name());
SubMerchant subMerchant = SubMerchant.create(request, options);
Copy iyzipay.subMerchant.create({
locale: Iyzipay.LOCALE.TR,
conversationId: '123456789',
subMerchantExternalId: 'S49222',
subMerchantType: Iyzipay.SUB_MERCHANT_TYPE.LIMITED_OR_JOINT_STOCK_COMPANY,
address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
taxOffice: 'Tax office',
taxNumber: '31300864726',
legalCompanyTitle: 'John Doe inc',
email: 'email@submerchantemail.com',
gsmNumber: '+905350000000',
name: 'John\'s market',
iban: 'TR180006200119000006672315',
currency: Iyzipay.CURRENCY.TRY
}, function (err, result) {
console.log(err, result);
done();
});
Copy request = dict([('locale', 'tr')])
request['conversationId'] = '123456789'
request['subMerchantExternalId'] = 'S49222'
request['subMerchantType'] = 'LIMITED_OR_JOINT_STOCK_COMPANY'
request['address'] = 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1'
request['taxOffice'] = 'Tax Office'
request['taxNumber'] = '31300864726'
request['legalCompanyTitle'] = 'John Doe inc'
request['email'] = 'email@submerchantemail.com'
request['gsmNumber'] = '+905350000000'
request['name'] = 'John\'s market'
request['iban'] = 'TR180006200119000006672315'
request['currency'] = 'TRY'
sub_merchant = iyzipay.SubMerchant()
sub_merchant_response = sub_merchant.create(request, options)
Copy request = {
locale: 'tr',
conversationId: '123456789',
subMerchantExternalId: 'S49222',
subMerchantType: Iyzipay::Model::SubMerchantType::LIMITED_OR_JOINT_STOCK_COMPANY,
address: 'Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1',
taxOffice: 'Tax office',
taxNumber: '31300864726',
legalCompanyTitle: 'John Doe inc',
email: 'email@submerchantemail.com',
gsmNumber: '+905350000000',
name: 'John\'s market',
iban: 'TR180006200119000006672315',
currency: Iyzipay::Model::Currency::TRY
}
sub_merchant = Iyzipay::Model::SubMerchant.new.create(request, @options)
Copy //Request
{
"locale": "tr",
"conversationId": "123456789",
"name": "John's market",
"email": "email@submerchantemail.com",
"gsmNumber": "+905350000000",
"address": "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1",
"iban": "TR180006200119000006672315",
"taxOffice": "Tax office",
"taxNumber": "31300864726",
"legalCompanyTitle": "John Doe inc",
"currency": "TRY",
"subMerchantExternalId": "S49222",
"subMerchantType": "LIMITED_OR_JOINT_STOCK_COMPANY"
}
//Response
{
"status": "success",
"locale": "tr",
"systemTime": 1470732341410,
"conversationId": "123456789",
"subMerchantKey": "PPFFZPedVQSvaOqZu5xpvpLEqmc="
}
Last updated 9 months ago