Submits the full merchant application to the TSYS processor in a single atomic call. Combines merchant profile, business and owner information, sales profile, site inspection, service acceptance, fees, and equipment into one submission. On success the merchant is queued for underwriting review at UW Level 1 status.
POST /api/v2/merchant/submit
Basic HTTP Authentication required.
Authorization: Basic {base64(username:password)}
Use this as the preferred submission method for V2 integrations. It can be used to submit a new merchant in one shot, or to finalize a draft previously created with POST /api/v2/merchant/create. After a successful call, use GET /api/v1/merchant/status to track the processing status.
Feature V1 V2 merchantProfile schemaTsysMerchant — cashDiscount string flagTsysMerchantV2Edit — feesProgram enum, no cashDiscountFees schema TsysFeesTsysFeesV2 — adds cashDiscountRateResponse schema ApiResponse1 with status stringApiResult1 with success boolean + validationErrors array
Field Type Required Description merchantProfile TsysMerchantV2Edit Yes Core merchant configuration businessAndOwnerInformation TsysParameters Yes Business details and owner KYC salesAndBusinessProfile TsysMerchantAccount Yes Sales volumes and banking info siteInspection TsysSiteInspection Yes Physical location inspection serviceAcceptance TsysProductSetup Yes Card networks accepted fees TsysFeesV2 No Full fee schedule equipment TsysEquipment Yes Terminal equipment merchantProfileId integer No Provide to update and submit an existing draft
Field Type Required Description agentProfileId integer Yes Agent profile ID — get from GET /api/v2/agent/profile feesProgram string (enum) Yes Traditional, CashDiscount, Surcharge, ServiceFee, DualPricingpos string (enum) Yes POS system type — see enum values below boardingSettingsId integer No Boarding settings template ID mid string No Existing MID if re-submitting a previously boarded merchant externalClientID string No External client reference ID externalChainID string No External chain reference ID
pos enum values: None, AptitoPalomaPOS, Clover, PalomaPOS, Aldelo, Restoactive, PoyntPOS, CloverGo, UnifiedMpos, CustomPos, RetailCloud, EHopper, FreedomPos, ClubPos, SelfLane, OtfPOS, NProKiosk, GretaPOS
Field Type Required Description customerServicePhoneNum string Yes 10-digit phone, must not start with 1 federalTaxId string Yes 9-digit EIN (^\d{9}$ or masked with *) dateOfStartBusiness string (date-time) Yes Business start date ISO 8601 merchantEmail string No Merchant contact email merchantWebsite string No Business website URL multipleLocations boolean No Whether business has multiple locations numOfLocations integer No Number of locations if multipleLocations is true legalAddress AddressBase Yes Legal registered address dbaAddress AddressBase Yes DBA operating address primaryOwner Owner Yes Primary owner KYC details secondaryOwner SecondaryOwner No Second owner owner3 SecondaryOwner No Third owner owner4 SecondaryOwner No Fourth owner controllingOfficer1 ControllingOfficer No Controlling officer 1 controllingOfficer2 ControllingOfficer No Controlling officer 2
AddressBase (used for legalAddress and dbaAddress):
Field Type Required Description name string Yes Business name at this address address string Yes Street address line 1 address2 string No 🆕 Suite, unit, floor, apartment postalCode string Yes ZIP code city string Yes City state string (enum) Yes Full US state name, e.g. California phone string Yes Phone, must not start with 1 fax string No Fax number
state enum: Alaska, Alabama, Arkansas, Arizona, California, Colorado, Connecticut, DistrictOfColumbia, Delaware, Florida, Georgia, Hawaii, Iowa, Idaho, Illinois, Indiana, Kansas, Kentucky, Louisiana, Massachusetts, Maryland, Maine, Michigan, Minnesota, Missouri, Mississippi, Montana, NorthCarolina, NorthDakota, Nebraska, NewHampshire, NewJersey, NewMexico, Nevada, NewYork, Ohio, Oklahoma, Oregon, Pennsylvania, PuertoRico, RhodeIsland, SouthCarolina, SouthDakota, Tennessee, Texas, Utah, Virginia, VirginIslands, Vermont, Washington, Wisconsin, WestVirginia, Wyoming
Owner (used for primaryOwner):
Field Type Required Description firstName string Yes 2–25 letters only lastName string Yes 2–25 letters only middleName string No 2–25 letters only dateOfBirth string (date-time) Yes Date of birth ISO 8601 ssn string Yes 9-digit SSN, no sequential/repeated patterns address string Yes Street address, max 40 chars, alphanumeric city string Yes 2–25 chars state string (enum) Yes Full US state name zip string Yes 5 or 9 digit ZIP (^\d{5}(-\d{4})?$) homePhone string Yes Must not start with 1 title string (enum) Yes President, VPresident, Owner, Partner, Manager, Treasurer, Secretary, ExecDirectorownership integer Yes Ownership percentage 0–100 email string Yes Max 60 chars guarantor boolean No Whether owner is a guarantor typeOfIssuedID string (enum) No USPassport, PermanentRegistrationCard, DriversLicense, USMilitaryCard, USCostGuardMerchantMarinerCard, USCitizenIdCardidNumber string No Alphanumeric ID number idExpirationDate string (date-time) No ID expiration date
SecondaryOwner — same structure as Owner (used for secondaryOwner, owner3, owner4).
ControllingOfficer (used for controllingOfficer1 and controllingOfficer2):
Field Type Required Description firstName string Yes 2–25 letters only lastName string Yes 2–25 letters only middleName string No 2–25 letters only dateOfBirth string (date-time) Yes Date of birth ssn string Yes 9-digit SSN title string (enum) Yes President, VPresident, Owner, Partner, Manager, Treasurer, Secretary, ExecDirectoraddress string Yes Max 40 chars, alphanumeric city string Yes 2–25 chars state string (enum) Yes Full US state name zip string Yes ZIP code homePhone string Yes Must not start with 1 email string No 🆕 Max 60 chars guarantor boolean No Whether officer is a guarantor typeOfIssuedID string (enum) No Same enum as Owner idNumber string No Alphanumeric idExpirationDate string (date-time) No ID expiration
Field Type Required Description sic string Yes Standard Industry Classification code (4 digits) typeOfOwnership string (enum) Yes Corporation, SoleProprietorship, Partnership, AssociationEstateTrust, TaxExempt501C, International, LimitedLiabilityLlc, GovernmentAgencybusinessType string (enum) Yes Other, Internet, Lodging, MailOrder, Restaurant, Retail, QSR, Supermarket, Petroleum, Utilities, Healthcare, Education, Government, Charity_NonProfit, B2B, ServiceaccountType string (enum) No C (Checking), S (Savings), G (General)accountNumber string Yes Bank account number, max 17 digits, numeric only businessCheckingRoutingNumber string Yes 9-digit ABA routing number achMethod string (enum) Yes Combine, Deposit, CombineAndDepositaverageTicket integer Yes Average transaction amount (minimum 1) highTicket integer No Maximum expected transaction (1–999999) salesToConsumers number No % of sales to consumers (0–100) salesToBusiness number No % of sales to businesses (0–100) salesToGovernment number No % of sales to government (0–100) bankName string No Name of the bank goodsAndServices string No Description of goods/services sold returnPolicy string No Merchant's return policy nextDayFunding boolean No Next-day funding requested sameDayFunding boolean No Same-day funding requested isVsMcDsNetwork boolean No Whether Visa/MC/Discover network is used monthlyVolume integer Yes Expected monthly processing volume (minimum 1) annualVolume integer No Read-only. Computed from monthlyVolume retail integer Yes % card-present transactions (0–100) imprint integer Yes % imprint transactions (0–100) moto integer Yes % mail/phone order transactions (0–100) internet integer Yes % internet transactions (0–100) sellingRegulatedSubstances boolean No Whether business sells regulated substances massageServices boolean No Whether business offers massage services sellingGasFuel boolean No Whether business sells gas/fuel cardNotPresentInformation TsysCnpInformation No Required when internet > 0
⚠️
cardNotPresentInformation (TsysCnpInformation) — provide when internet > 0:
Field Type Description isWebHosting boolean Sells web hosting services isDomainRegistration boolean Sells domain registration isWebPageDesign boolean Sells web design isAuction boolean Operates an auction site isInternetServiceGateway boolean Internet service gateway isSellingDigitalService boolean Sells digital products isAdvertisement boolean Sells advertising isSellingHardGoods boolean Sells physical goods online isOther boolean Other internet business type otherInternetBusinessType string Description if isOther is true saleDescription string What is sold advertiseOrPromotion string How products are advertised secureTransactionInformation string Security measures in place vendors string Vendor information productFulfillment string How products are fulfilled monthly/yearly/quarterly/oneTime/hourly integer Billing frequency counts isMonthly/isYearly/isQuarterly/isOneTime/isHourly boolean Active billing frequencies
Field Type Required Description inventoryMaintainedType string (enum) No OnSite, WarehouseOffSite, FulfillmentCenterfulfillmentCenterNameAndAddress string No Address if FulfillmentCenter question1 boolean No Is business operating at this address? question1Explanation string No Explanation if false question2 boolean No Is business open to the public? question2Explanation string No Explanation if false question3 boolean No Does business have adequate signage? question3Explanation string No Explanation if false question4 boolean No Is location consistent with business type? question4Explanation string No Explanation if false zoning string (enum) No Comml, Industrial, ResidentialsquareFootageType string (enum) No From_0_To_500, From_501_To_1000, From_1001_To_2000, From_2001_To_4000, OthersquareFootageTypeOther integer No Exact sq ft if Other selected merchant string (enum) No Owns, LeasesnameAddressLandlord string No Landlord details if leasing
Field Type Required Description amexESA boolean No Accept Amex via ESA program amexOptBlue boolean No Accept Amex via OptBlue discover boolean No Accept Discover payPal boolean No Accept PayPal jcb boolean No Accept JCB ebt boolean No Accept EBT debitCard boolean No Accept PIN debit amexNumber string No 10-digit Amex ESA number (required if amexESA = true) fcsNumber string No 7-digit FCS number (required if amexESA = true)
V2 adds cashDiscountRate compared to V1 fees schema.
Field Type Required Description cashDiscountRate number No Cash discount rate 0–100% (used when feesProgram = CashDiscount) minimumDiscountAmount number No Minimum discount amount (0–500) minimumDiscountStartDate string (date-time) No When minimum discount starts minimumDiscountType string (enum) No Daily, MonthlyearlyTerminationFeeAmount number No Early termination fee (0–999999) earlyTerminationFeeContractMonths integer No Contract length in months (0–60) amex AmexFees No Amex fee structure visaMasterCardDiscover VisaMasterCardDiscoverFees No Visa/MC/Discover fees authorizationMonthlyAndSpecialProgram object No Auth, monthly and special program fees pos POSFees No POS software fees standard StandardFees No Standard fees cardBrand CardBrandFees No Card brand fee flags debitPinAndEBT DebitPinAndEBTFees No Debit PIN and EBT fees gatewayProducts GatewayProductsFees No Gateway and wireless fees miscFees array of TsysMiscFee No Custom miscellaneous fees miscFeesVolume array of TsysMiscFee No Volume-based misc fees
TsysFee (base fee object used throughout):
Field Type Required Description perItem number Yes Per-transaction flat fee percent number Yes Percentage fee
TsysPOSFee (used in pos fees):
Field Type Required Description count integer Yes Number of licenses/units perItem number Yes Per-unit fee percent number Yes Percentage fee
TsysFeeDiscountType (used in noSurcharge and debit fees):
Field Type Required Description discountType string (enum) No Daily, MonthlyperItem number Yes Per-transaction fee percent number Yes Percentage fee
authorizationMonthlyAndSpecialProgram key fields:
Field Description vsmcdiscAuth Visa/MC/Disc auth fee amexAuth Amex auth fee avs Address Verification Service batch Batch settlement fee voiceAuthorization Voice auth fee retrieval Retrieval request fee chargeback Chargeback fee chargebackViolation Chargeback violation fee achReject ACH reject fee merchAnnual Annual merchant fee statement Monthly statement fee reporting1099K 1099-K reporting fee tinMismatch TIN mismatch fee pciAnnual PCI annual compliance fee pciNonCompliance PCI non-compliance fee pciMonthly PCI monthly fee pciQuarterly PCI quarterly fee visaRapidDisputeResolution Visa RDR fee
AmexFees — choose one pricing model:
Field Description interchangePlus Interchange plus pricing — qualifiedDiscount (TsysFee) tieredDiscounts Tiered — qualifiedDiscount, midQual, nonQual (TsysFee each) noSurcharge No surcharge — qualDiscount (TsysFeeDiscountType) amexInterchangePlusPlus IC++ — qualifiedDiscount, midQual, nonQual (TsysFee each)
VisaMasterCardDiscoverFees — choose one pricing model:
Field Description billBackIntrDifferential Bill-back/differential — per-card-brand credit/debit + non-qual IC diff fields interchangePlus IC+ — per-card-brand credit/debit discount fields noSurcharge No surcharge — per-card-brand credit/debit (TsysFeeDiscountType each) tieredDiscountsRetail Tiered retail — per-card-brand + midQual + nonQual tieredDiscountsMOTOEcomm Tiered MOTO/ecomm — per-card-brand + midMOTO + nonQual customInterchange Custom IC — vcMcDsInterSurcharge + per-card-brand customInterchangeDurbin Custom IC Durbin — interSurcharge, interNonSurcharge, regulatedDbSurcharge + per-card-brand interchangePlusPlus IC++ — qualifiedDiscount, midQual, nonQual
TsysMiscFee (for miscFees / miscFeesVolume):
Field Type Required Description name string Yes Fee name — must match allowed SIF names from GET /api/v1/SIFFeeNames frequency string (enum) Yes Annual, SemiAnnual, Quarterly, Monthly, OneTimeperItem number Yes Flat fee amount percent number Yes Percentage amount startDate string (date-time) No Fee start date stopDate string (date-time) No Fee stop date month integer No Month number for annual fees year integer No Year for annual fees
StandardFees :
Field Description dialPay Dial pay fee onlinePortal Online portal fee motoEcommSurchargePI MOTO/ecomm surcharge nextDayFunding Next-day funding fee sameDayFunding Same-day funding fee
GatewayProductsFees :
Field Description gatewayAccess Monthly gateway access fee gatewayPerItem Per-transaction gateway fee wirelessActivation Wireless activation fee wirelessAccess Wireless monthly access fee unifiedmPOSActivation mPOS activation fee unifiedmPOSAccess mPOS monthly access fee unifiedmPOSTransactions mPOS per-transaction fee wirelessAndMobilePOSPI Wireless/mobile POS PI fee micros Micros integration fee
DebitPinAndEBTFees :
Field Description pinDebitMonthly Monthly PIN debit fee pinDebitQualifiedDiscount PIN debit qualified discount (TsysFeeDiscountType) pinDebitAuth PIN debit auth fee (TsysFeeDiscountType) pinDebitAnnual Annual PIN debit fee ebtTrans EBT per-transaction fee pinDebitPassThruIC Pass-through interchange flag
CardBrandFees :
Field Type Description cardBrand boolean Enable card brand fees mastercardLicense boolean Enable Mastercard license fee pinDebitCardBrandFees boolean Enable PIN debit card brand fees
POSFees — POS software license fees (TsysPOSFee each):
Field Description fullPackage Full POS package fullPackageOnePrinter Full package with one printer tableSidePOSPackage Tableside POS package protectionPackage Protection/warranty package posLicence POS software licence tableSidePOSLicence Tableside POS licence mposLicence mPOS licence menuLicence Menu management licence kioskLicence Kiosk licence onlineOrderingLicence Online ordering licence
Field Type Required Description terminals array of TsysTerminal Yes List of terminals. Can be empty array []
TsysTerminal :
Field Type Required Description terminalType string (enum) Yes Terminal model
terminalType enum: HYPERCOM_M4230_SPOSDCC, HYPERCOM_T4230_SPOSDCC, INGENICO_ICT220_INGEMV4, INGENICO_ICT220CTL_INGEMV4, INGENICO_ICT250_INGEMV4, INGENICO_IWL220_INGEMV4, INGENICO_IWL250_INGEMV4, INGENICO_IPP320_INGEMV4, VERIFONE_VX520_XEVA440, VERIFONE_VX680_XEVA440, CLSBPLUS_PAX, MULTIPASS, HCSTAGE, DIAL_PAY, NETEVIA_GATEWAY, AUTH_NET_GATEWAY, NMI_Unified_Gateway, USAePay_Gateway, Aldelo_EDC, Cardflight_mPOS, Dejavoo_Z8, Dejavoo_Z9, Dejavoo_Z11, Pax_S80, Pax_S300, Poynt, EHopper, Freedom_POS, Netevia_Light_POS, STGENCR, HCSTGEN, ValorVP100, ValorVP300, DejavooQD2, DejavooQD4, DejavooQD3, DejavooQD5, DejavooP1, DejavooP3, DejavooP5, ValorVL100, ValorVL300, ValorVL110, ValorVP550, ValorVP800, ValorRCKT, ValorVirtualTerminal
JSON
{
"merchantProfile": {
"feesProgram": "Traditional",
"agentProfileId": 204,
"pos": "Clover",
"boardingSettingsId": 15
},
"businessAndOwnerInformation": {
"customerServicePhoneNum": "8005550100",
"federalTaxId": "471234567",
"dateOfStartBusiness": "2019-01-15T00:00:00Z",
"merchantEmail": "[email protected] ",
"merchantWebsite": "https://www.tlcrestaurant.com",
"multipleLocations": false,
"legalAddress": {
"name": "TLC Restaurant Inc",
"address": "850 Main Street",
"address2": "Suite 100",
"postalCode": "90210",
"city": "Beverly Hills",
"state": "California",
"phone": "3105550180"
},
"dbaAddress": {
"name": "TLC Bistro",
"address": "850 Main Street",
"address2": "Suite 100",
"postalCode": "90210",
"city": "Beverly Hills",
"state": "California",
"phone": "3105550180"
},
"primaryOwner": {
"firstName": "Angela",
"lastName": "Torres",
"dateOfBirth": "1975-07-04T00:00:00Z",
"ssn": "456781239",
"address": "200 Palm Drive",
"city": "Beverly Hills",
"state": "California",
"zip": "90210",
"homePhone": "3105550292",
"title": "Owner",
"ownership": 100,
"email": "[email protected] ",
"guarantor": true,
"typeOfIssuedID": "DriversLicense",
"idNumber": "CA987654321",
"idExpirationDate": "2029-07-04T00:00:00Z"
},
"controllingOfficer1": {
"firstName": "Maria",
"lastName": "Torres",
"dateOfBirth": "1978-09-20T00:00:00Z",
"ssn": "456789001",
"title": "President",
"address": "200 Palm Drive",
"city": "Beverly Hills",
"state": "California",
"zip": "90210",
"homePhone": "3105550293",
"email": "[email protected] "
}
},
"salesAndBusinessProfile": {
"sic": "5812",
"typeOfOwnership": "Corporation",
"businessType": "Restaurant",
"accountNumber": "123456789012",
"businessCheckingRoutingNumber": "021000021",
"achMethod": "Combine",
"averageTicket": 4500,
"highTicket": 20000,
"monthlyVolume": 85000,
"retail": 95,
"imprint": 0,
"moto": 5,
"internet": 0,
"bankName": "JPMorgan Chase",
"goodsAndServices": "Full-service restaurant serving American cuisine",
"returnPolicy": "No refunds on food; merchandise returns within 30 days"
},
"siteInspection": {
"inventoryMaintainedType": "OnSite",
"zoning": "Comml",
"squareFootageType": "From_1001_To_2000",
"merchant": "Leases",
"nameAddressLandlord": "Beverly Hills Properties LLC, 100 Rodeo Dr, Beverly Hills CA 90210",
"question1": true,
"question2": true,
"question3": true,
"question4": true
},
"serviceAcceptance": {
"amexOptBlue": true,
"discover": true,
"debitCard": true,
"payPal": false,
"jcb": false,
"ebt": false
},
"fees": {
"minimumDiscountAmount": 25.00,
"minimumDiscountType": "Monthly",
"earlyTerminationFeeAmount": 295,
"earlyTerminationFeeContractMonths": 36,
"authorizationMonthlyAndSpecialProgram": {
"vsmcdiscAuth": { "perItem": 0.10, "percent": 0.0 },
"amexAuth": { "perItem": 0.10, "percent": 0.0 },
"avs": { "perItem": 0.02, "percent": 0.0 },
"chargeback": { "perItem": 25.00, "percent": 0.0 },
"retrieval": { "perItem": 10.00, "percent": 0.0 },
"pciAnnual": { "perItem": 99.00, "percent": 0.0 },
"pciNonCompliance": { "perItem": 29.99, "percent": 0.0 }
},
"miscFees": [
{
"name": "SERVICE FEE",
"frequency": "Monthly",
"perItem": 9.95,
"percent": 0.0
}
]
},
"equipment": {
"terminals": [
{ "terminalType": "Poynt" }
]
}
}
200 OK
Field Type Description data.merchantProfileId integer Merchant profile ID of created or updated record — use in all subsequent calls requestId integer Internal request tracking ID success boolean true if submission was acceptederror string Error message if success is false validationErrors array Field-level errors with field and error properties
JSON
{
"data": {
"merchantProfileId": 30912
},
"requestId": 456,
"success": true,
"error": null,
"validationErrors": []
}
Code When it happens 400 Missing required fields, validation failures, or retail + imprint + moto + internet ≠ 100 401 Invalid or missing Basic Auth credentials 403 No permission to submit this merchant 404 merchantProfileId provided but not found500 Internal server error or processor communication failure
retail + imprint + moto + internet must equal exactly 100 — any other sum causes a 400 error.
feesProgram is required in V2 — unlike V1 which used a cashDiscount string flag.
pos is required — use None if no specific POS system.
federalTaxId must be exactly 9 digits — no dashes (47-1234567 is invalid).
accountNumber must be purely numeric, max 17 digits — no dashes or spaces.
businessCheckingRoutingNumber must be exactly 9 digits.
ssn must be 9 digits and cannot match sequential or repeated patterns.
cardNotPresentInformation should be provided when internet > 0.
amexNumber (10 digits) and fcsNumber (7 digits) are required when amexESA: true.
address2 and controlling officer email are optional and backward compatible.
Providing merchantProfileId links to an existing record — omit it to create a new one.
Bash
curl -X POST https://hq.staging.netevia.dev/api/v2/merchant/submit \
-H "Authorization: Basic $(echo -n 'username:password' | base64)" \
-H "Content-Type: application/json" \
-d '{ ... request body ... }'