Create a sub-merchant account
POST
/v1/merchant-accountsAuthorization
AuthorizationBearer token · headerrequiredPublic API key bearer token.
Query parameters
environmentstringrequiredmerchantAccountIdstringrequiredHeader parameters
Idempotency-KeystringRequired for production-safe retries on mutating routes. Reusing a key with a different request body returns 409.
min length 1
Request body
requiredapplication/jsonenvironmentstringrequiredAllowed:
sandboxproductionexternalMerchantRefstringYour stable reference for this merchant. Optional; generated when omitted.
displayNamestringrequiredlegalEntityTypestringrequiredcountrystringrequiredmerchantModestringrequireddefaultCurrencystringrequiredtenantIdstringMust match the caller's organization when present; rejected otherwise.
platformMerchantAccountIdstringConnect: provision this account as a linked sub-merchant under an operator-granted platform account the caller controls (sandbox only in v1). The account is created in a fresh claimable org; the response carries `claimUrl`/`claimExpiresAt` for handing ownership to the sub-merchant.
doingBusinessAsstringbusinessPhonestringbusinessTaxIdstringphonestringtaxIdstringemailstringfirstNamestringlastNamestringmccstringurlstringmaxTransactionAmountnumberachMaxTransactionAmountnumberannualCardVolumenumberprincipalPercentageOwnershipnumberhasAcceptedCreditCardsPreviouslybooleandateOfBirthMerchantProfileDateShow propertiesHide properties
daynumberrequiredmonthnumberrequiredyearnumberrequiredincorporationDateMerchantProfileDateShow propertiesHide properties
daynumberrequiredmonthnumberrequiredyearnumberrequiredbusinessAddressMerchantAddressShow propertiesHide properties
line1stringrequiredline2stringcitystringrequiredregionstringpostalCodestringrequiredcountrystringrequiredpersonalAddressMerchantAddressShow propertiesHide properties
line1stringrequiredline2stringcitystringrequiredregionstringpostalCodestringrequiredcountrystringrequiredsettlementBankAccountMerchantSettlementBankAccountShow propertiesHide properties
namestringrequiredaccountNumberstringrequiredbankCodestringrequiredaccountTypestringrequiredattemptValidationCheckbooleanassociatedIdentitiesMerchantAssociatedIdentity[]Show propertiesHide properties
Array of
MerchantAssociatedIdentityidentityRolesstring[]requiredrelationTypestringfirstNamestringlastNamestringtitlestringemailstringphonestringtaxIdstringprincipalPercentageOwnershipnumberdateOfBirthMerchantProfileDateShow propertiesHide properties
daynumberrequiredmonthnumberrequiredyearnumberrequiredpersonalAddressMerchantAddressShow propertiesHide properties
line1stringrequiredline2stringcitystringrequiredregionstringpostalCodestringrequiredcountrystringrequiredunderwritingMerchantUnderwritingDataShow propertiesHide properties
annualAchVolumenumberaverageAchTransferAmountnumberaverageCardTransferAmountnumberbusinessDescriptionstringcreditCheckAllowedbooleancreditCheckIpAddressstringcreditCheckTimestampstringcreditCheckUserAgentstringrefundPolicystringcardVolumeDistributionobjectShow propertiesHide properties
cardPresentPercentagenumberecommercePercentagenumbermailOrderTelephoneOrderPercentagenumbervolumeDistributionByBusinessTypeobjectShow propertiesHide properties
businessToConsumerVolumePercentagenumberconsumerToConsumerVolumePercentagenumberotherVolumePercentagenumbermetadataobjectResponses
200Success
dataobjectrequiredrequestIdstringrequired400Bad request, including malformed JSON
errorobjectrequiredShow propertiesHide properties
codestringrequiredAllowed:
bad_requestunauthorizedforbiddennot_foundconflictrate_limitedvalidation_failurenot_implementedinternal_errormessagestringrequiredrequestIdstringdocsUrlstringDeep link to the errors guide section for this code.
detailsobject401Missing or invalid API key
errorobjectrequiredShow propertiesHide properties
codestringrequiredAllowed:
bad_requestunauthorizedforbiddennot_foundconflictrate_limitedvalidation_failurenot_implementedinternal_errormessagestringrequiredrequestIdstringdocsUrlstringDeep link to the errors guide section for this code.
detailsobject409Conflict, including idempotency body drift
errorobjectrequiredShow propertiesHide properties
codestringrequiredAllowed:
bad_requestunauthorizedforbiddennot_foundconflictrate_limitedvalidation_failurenot_implementedinternal_errormessagestringrequiredrequestIdstringdocsUrlstringDeep link to the errors guide section for this code.
detailsobject422Validation failed
errorobjectrequiredShow propertiesHide properties
codestringrequiredAllowed:
bad_requestunauthorizedforbiddennot_foundconflictrate_limitedvalidation_failurenot_implementedinternal_errormessagestringrequiredrequestIdstringdocsUrlstringDeep link to the errors guide section for this code.
detailsobject429API key rate limit exceeded
errorobjectrequiredShow propertiesHide properties
codestringrequiredAllowed:
bad_requestunauthorizedforbiddennot_foundconflictrate_limitedvalidation_failurenot_implementedinternal_errormessagestringrequiredrequestIdstringdocsUrlstringDeep link to the errors guide section for this code.
detailsobjectdefaultError
errorobjectrequiredShow propertiesHide properties
codestringrequiredAllowed:
bad_requestunauthorizedforbiddennot_foundconflictrate_limitedvalidation_failurenot_implementedinternal_errormessagestringrequiredrequestIdstringdocsUrlstringDeep link to the errors guide section for this code.
detailsobjectRequest
curl -X POST "https://api.vortex.nyc/v1/merchant-accounts?environment=string&merchantAccountId=string" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"environment": "sandbox",
"externalMerchantRef": "string",
"displayName": "string",
"legalEntityType": "string",
"country": "string",
"merchantMode": "string",
"defaultCurrency": "string",
"tenantId": "string",
"platformMerchantAccountId": "string",
"doingBusinessAs": "string",
"businessPhone": "string",
"businessTaxId": "string",
"phone": "string",
"taxId": "string",
"email": "string",
"firstName": "string",
"lastName": "string",
"mcc": "string",
"url": "string",
"maxTransactionAmount": 0,
"achMaxTransactionAmount": 0,
"annualCardVolume": 0,
"principalPercentageOwnership": 0,
"hasAcceptedCreditCardsPreviously": true,
"dateOfBirth": {
"day": 0,
"month": 0,
"year": 0
},
"incorporationDate": {
"day": 0,
"month": 0,
"year": 0
},
"businessAddress": {
"line1": "string",
"line2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string"
},
"personalAddress": {
"line1": "string",
"line2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string"
},
"settlementBankAccount": {
"name": "string",
"accountNumber": "string",
"bankCode": "string",
"accountType": "string",
"attemptValidationCheck": true
},
"associatedIdentities": [
{
"identityRoles": [
"string"
],
"relationType": "string",
"firstName": "string",
"lastName": "string",
"title": "string",
"email": "string",
"phone": "string",
"taxId": "string",
"principalPercentageOwnership": 0,
"dateOfBirth": {
"day": 0,
"month": 0,
"year": 0
},
"personalAddress": {
"line1": "string",
"line2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string"
}
}
],
"underwriting": {
"annualAchVolume": 0,
"averageAchTransferAmount": 0,
"averageCardTransferAmount": 0,
"businessDescription": "string",
"creditCheckAllowed": true,
"creditCheckIpAddress": "string",
"creditCheckTimestamp": "string",
"creditCheckUserAgent": "string",
"refundPolicy": "string",
"cardVolumeDistribution": {
"cardPresentPercentage": 0,
"ecommercePercentage": 0,
"mailOrderTelephoneOrderPercentage": 0
},
"volumeDistributionByBusinessType": {
"businessToConsumerVolumePercentage": 0,
"consumerToConsumerVolumePercentage": 0,
"otherVolumePercentage": 0
}
},
"metadata": {}
}'const response = await fetch("https://api.vortex.nyc/v1/merchant-accounts?environment=string&merchantAccountId=string", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"environment": "sandbox",
"externalMerchantRef": "string",
"displayName": "string",
"legalEntityType": "string",
"country": "string",
"merchantMode": "string",
"defaultCurrency": "string",
"tenantId": "string",
"platformMerchantAccountId": "string",
"doingBusinessAs": "string",
"businessPhone": "string",
"businessTaxId": "string",
"phone": "string",
"taxId": "string",
"email": "string",
"firstName": "string",
"lastName": "string",
"mcc": "string",
"url": "string",
"maxTransactionAmount": 0,
"achMaxTransactionAmount": 0,
"annualCardVolume": 0,
"principalPercentageOwnership": 0,
"hasAcceptedCreditCardsPreviously": true,
"dateOfBirth": {
"day": 0,
"month": 0,
"year": 0
},
"incorporationDate": {
"day": 0,
"month": 0,
"year": 0
},
"businessAddress": {
"line1": "string",
"line2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string"
},
"personalAddress": {
"line1": "string",
"line2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string"
},
"settlementBankAccount": {
"name": "string",
"accountNumber": "string",
"bankCode": "string",
"accountType": "string",
"attemptValidationCheck": true
},
"associatedIdentities": [
{
"identityRoles": [
"string"
],
"relationType": "string",
"firstName": "string",
"lastName": "string",
"title": "string",
"email": "string",
"phone": "string",
"taxId": "string",
"principalPercentageOwnership": 0,
"dateOfBirth": {
"day": 0,
"month": 0,
"year": 0
},
"personalAddress": {
"line1": "string",
"line2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string"
}
}
],
"underwriting": {
"annualAchVolume": 0,
"averageAchTransferAmount": 0,
"averageCardTransferAmount": 0,
"businessDescription": "string",
"creditCheckAllowed": true,
"creditCheckIpAddress": "string",
"creditCheckTimestamp": "string",
"creditCheckUserAgent": "string",
"refundPolicy": "string",
"cardVolumeDistribution": {
"cardPresentPercentage": 0,
"ecommercePercentage": 0,
"mailOrderTelephoneOrderPercentage": 0
},
"volumeDistributionByBusinessType": {
"businessToConsumerVolumePercentage": 0,
"consumerToConsumerVolumePercentage": 0,
"otherVolumePercentage": 0
}
},
"metadata": {}
})
});import requests
response = requests.post(
"https://api.vortex.nyc/v1/merchant-accounts?environment=string&merchantAccountId=string",
headers={
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
json={
"environment": "sandbox",
"externalMerchantRef": "string",
"displayName": "string",
"legalEntityType": "string",
"country": "string",
"merchantMode": "string",
"defaultCurrency": "string",
"tenantId": "string",
"platformMerchantAccountId": "string",
"doingBusinessAs": "string",
"businessPhone": "string",
"businessTaxId": "string",
"phone": "string",
"taxId": "string",
"email": "string",
"firstName": "string",
"lastName": "string",
"mcc": "string",
"url": "string",
"maxTransactionAmount": 0,
"achMaxTransactionAmount": 0,
"annualCardVolume": 0,
"principalPercentageOwnership": 0,
"hasAcceptedCreditCardsPreviously": True,
"dateOfBirth": {
"day": 0,
"month": 0,
"year": 0
},
"incorporationDate": {
"day": 0,
"month": 0,
"year": 0
},
"businessAddress": {
"line1": "string",
"line2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string"
},
"personalAddress": {
"line1": "string",
"line2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string"
},
"settlementBankAccount": {
"name": "string",
"accountNumber": "string",
"bankCode": "string",
"accountType": "string",
"attemptValidationCheck": True
},
"associatedIdentities": [
{
"identityRoles": [
"string"
],
"relationType": "string",
"firstName": "string",
"lastName": "string",
"title": "string",
"email": "string",
"phone": "string",
"taxId": "string",
"principalPercentageOwnership": 0,
"dateOfBirth": {
"day": 0,
"month": 0,
"year": 0
},
"personalAddress": {
"line1": "string",
"line2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string"
}
}
],
"underwriting": {
"annualAchVolume": 0,
"averageAchTransferAmount": 0,
"averageCardTransferAmount": 0,
"businessDescription": "string",
"creditCheckAllowed": True,
"creditCheckIpAddress": "string",
"creditCheckTimestamp": "string",
"creditCheckUserAgent": "string",
"refundPolicy": "string",
"cardVolumeDistribution": {
"cardPresentPercentage": 0,
"ecommercePercentage": 0,
"mailOrderTelephoneOrderPercentage": 0
},
"volumeDistributionByBusinessType": {
"businessToConsumerVolumePercentage": 0,
"consumerToConsumerVolumePercentage": 0,
"otherVolumePercentage": 0
}
},
"metadata": {}
},
)Response
{
"data": {},
"requestId": "string"
}{
"error": {
"code": "bad_request",
"message": "string",
"requestId": "string",
"docsUrl": "string",
"details": {}
}
}{
"error": {
"code": "bad_request",
"message": "string",
"requestId": "string",
"docsUrl": "string",
"details": {}
}
}{
"error": {
"code": "bad_request",
"message": "string",
"requestId": "string",
"docsUrl": "string",
"details": {}
}
}{
"error": {
"code": "bad_request",
"message": "string",
"requestId": "string",
"docsUrl": "string",
"details": {}
}
}{
"error": {
"code": "bad_request",
"message": "string",
"requestId": "string",
"docsUrl": "string",
"details": {}
}
}{
"error": {
"code": "bad_request",
"message": "string",
"requestId": "string",
"docsUrl": "string",
"details": {}
}
}