NewMerchant Object
We’ve simplified the merchant creation process with an intuitive request structure.
The new merchant object is organized into three straightforward sections: legal
, owners
, and bankAccount
.
Root Properties
- Name
legal
- Type
object
(required)- Description
- Example
Example:
- Name
owners
- Type
array
(nullable)- Description
- There should not more than 4 owners. Each owner must have at least 25% ownership.
- Example
Example:
- Name
controlProng
- Type
object
(nullable)- Description
- Information about the person with significant financial control over the business
- Example
Example:
- Name
primaryContact
- Type
object
(nullable)- Description
- Information about the primary business contact person
- Example
Example:
- Name
pciContact
- Type
object
(nullable)- Description
- Contact information for the person responsible for PCI compliance
- Example
Example:
- Name
bankAccount
- Type
object
(required)- Description
- Bank account information for the merchant
- Example
Example:
When you specfic one of the owners as the control prong, pci contact or primary Contact, you do not have to provide the properties of controlProng
, pciContact
or primaryContact
.
{
"legal": {
// ... Other Properties
"ownershipType": "LIMITED"
},
"owners": [
{
"title": "CEO",
"firstName": "John",
"lastName": "Doe",
"percentage": 100,
"ssn": "666989898",
"isControllingProng": true,
"isPrimaryContact": true,
"isPciContact": true
}
],
"bankAccount": { /** Properties */ },
"controlProng": null,
"primaryContact": null,
"pciContact": null
}
BankAccount Properties
- Name
name
- Type
string
(required)- Description
- Name of the financial institution
- Length Constraints
Length constraints:
Min Length: 1- Example
Example:
"Chase Bank"
- Name
routingNumber
- Type
string
(required)- Description
- 9-digit ABA routing transit number of the financial institution
- Pattern
Pattern:
^\d{9}$
- Example
Example:
"111000614"
- Name
confirmRoutingNumber
- Type
string
(required)- Description
- Re-enter routing number for verification
- Example
Example:
"111000614"
- Name
accountNumber
- Type
string
(required)- Description
- Bank account number (minimum 9 digits)
- Pattern
Pattern:
^\d+$
- Length Constraints
Length constraints:
Min Length: 9- Example
Example:
"987654321012"
- Name
confirmAccountNumber
- Type
string
(required)- Description
- Re-enter account number for verification
- Example
Example:
"987654321012"
Owners Properties
In order to create a unique identifier for the merchant, we need to know who owns this business. The owner object is an array of objects. Each object represents an owner of the business.
Sometimes the owner array is not needed depending on the type of business. Read more about ownershipType
and how they affect the owner array.
- Name
title
- Type
string
(required)- Description
- Title of the owner
- Enum
Possible values:
CEO
CFO
COO
President
Secretary
Treasurer
Vice President
- Example
Example:
"CEO"
- Name
firstName
- Type
string
(required)- Description
- First name of the owner
- Length Constraints
Length constraints:
Min Length: 1- Example
Example:
"John"
- Name
lastName
- Type
string
(required)- Description
- Last name of the owner
- Length Constraints
Length constraints:
Min Length: 1- Example
Example:
"Doe"
- Name
percentage
- Type
number
(required)- Description
- Percentage of ownership
- Example
Example:
100
- Name
ssn
- Type
string
(required)- Description
- Social Security Number
- Pattern
Pattern:
^\d{9}$
- Example
Example:
"666989898"
- Name
dob
- Type
string
(required)- Description
- Date of birth of owner
- Example
Example:
"1990-05-05T00:00:00.000Z"
- Name
address
- Type
object
(required)- Description
- Example
Example:
- Name
phone
- Type
string
(required)- Description
- Owner's phone number. Numbers with 555 will be rejected.
- Pattern
Pattern:
^\+(?:[0-9]){6,14}[0-9]$
- Example
Example:
"+12234567890"
- Name
email
- Type
string (email)
(required)- Description
- Owner's email address
- Example
Example:
"user@example.com"
- Name
isControllingProng
- Type
boolean
(required)- Description
- If this owner is the control prong, then mark as true. It will populate all the fields automatically for the controlProng fields. If you mark multiple owners as controlling prong, the first one will be used.
- Example
Example:
true
- Name
isPrimaryContact
- Type
boolean
(required)- Description
- Designates whether this owner serves as the control prong for the business. Setting this to true will automatically populate all controlProng fields with this owner's information. Note: If multiple owners are marked as control prong, the system will prioritize the first one designated.
- Example
Example:
true
- Name
isPciContact
- Type
boolean
(required)- Description
- Designates whether this person serves as the Payment Card Industry (PCI) contact for the business. Setting this to true identifies this individual as responsible for PCI compliance matters and related communications.
- Example
Example:
true
Legal Properties
We collect essential legal information (business name, address, and tax ID) to verify your business legitimacy and establish a unique merchant identifier.
- Name
name
- Type
string
(required)- Description
- When ownershipType is "SOLE PROPRIETOR", this property should be the owner's name
- Length Constraints
Length constraints:
Min Length: 1Max Length: 100- Example
Example:
"Dental Donuts LLC"
- Name
dba
- Type
string
(required)- Description
- Doing business as name
- Length Constraints
Length constraints:
Min Length: 1Max Length: 24- Example
Example:
"Merchant Dental"
- Name
locationName
- Type
string
(nullable)- Description
- If the merchant has multiple locations, then this is useful to identify this application to that location.
- Length Constraints
Length constraints:
Min Length: 1- Example
Example:
"Headquarters"
- Name
taxId
- Type
string
(required)- Description
- Taxpayer ID or Tax Identification Number (TIN) Of Legal Business Entity
- Pattern
Pattern:
^\d{9}$
- Example
Example:
"666989898"
- Name
address
- Type
object
(required)- Description
- Example
Example:
- Name
mailingAddress
- Type
object
(nullable)- Description
- Example
Example:
- Name
ownershipType
- Type
string
(required)- Description
- Type of business entity
- Enum
Possible values:
GOVERNMENT
PUBLIC COMPANY
NON PROFIT ORG
SOLE PROPRIETOR
JOINT STOCK
PARTNERSHIP
CORPORATION
LIMITED
- Example
Example:
"CORPORATION"
- Name
category
- Type
string
(nullable)- Description
- Type of business category.
- Enum
Possible values:
MOTO
RETAIL
- Example
Example:
"RETAIL"
- Name
productsSold
- Type
string
(nullable)- Description
- This is a description of what services or products are sold for this business.
- Length Constraints
Length constraints:
Max Length: 30- Example
Example:
"Medical Services"
- Name
phone
- Type
string
(required)- Description
- Business phone number. Numbers with 555 will be rejected.
- Pattern
Pattern:
^\+(?:[0-9]){6,14}[0-9]$
- Example
Example:
"+12234567890"
- Name
email
- Type
string (email)
(required)- Description
- Business email address
- Length Constraints
Length constraints:
Min Length: 1- Example
Example:
"business@example.com"
- Name
dateOfIncorporation
- Type
string
(required)- Description
- Business incorporation date
- Example
Example:
"2020-01-01T00:00:00.000Z"
- Name
website
- Type
string (uri)
(nullable)- Description
- Business website URL
- Example
Example:
"https://prahsys.com"
- Name
averageTicketPrice
- Type
number
(required)- Description
- This is the average price of a single transaction
- Example
Example:
250
- Name
highTicketPrice
- Type
number
(required)- Description
- This is the highest price of a single transaction
- Example
Example:
1000
- Name
averageMonthlyVolume
- Type
number
(required)- Description
- This is the average monthly volume of transactions
- Example
Example:
28000
- Name
averageYearlyVolume
- Type
number
(nullable)- Description
- This is the average yearly volume of transactions. You do not have to specify this because it can automatically be calculated from the averageMonthlyVolume.
- Example
Example:
336000
- Name
b2bTransactionPercentage
- Type
number
(nullable)- Description
- Percentage of transactions that are business to business
- Example
Example:
0
- Name
b2cTransactionPercentage
- Type
number
(nullable)- Description
- Percentage of transactions that are business to consumer
- Example
Example:
100
legal.b2bTransactionPercentage
legal.b2cTransactionPercentage
The transaction percentage values reflect your target customer distribution. For example, if you exclusively sell to other businesses (B2B), set your b2bTransactionPercentage to 100. Conversely, if you only sell to consumers (B2C), set b2cTransactionPercentage to 100. You do not have to provide the properties of controlProng when one of the owners properties is isControllingProng: true. If you are selling to both B2B and B2C, you only need to provide one of the properties and it will automatically calculate the other.
{
"legal": {
// ... Other Properties
// 'b2bTransactionPercentage' Will auto calculate to 60
"b2bTransactionPercentage": null,
"b2cTransactionPercentage": 40
}
}}
Ownership Type Requirements
legal.ownershipType
The ownershipType tells us how the business is structured. Read the ownershipTypes below to understand what fields are required for each type of business.
LIMITED
This is a limited liability company (LLC). When ownershipType is LIMITED
, there should be owners and a control prong.
LIMITED
{
"legal": {
"ownershipType": "LIMITED",
},
"bankAccount": { /** Properties */ },
"owners": [ {} ],
"controlProng": {}
}
CORPORATION
This is a legally incorporated entity separate from its owners. When ownershipType is CORPORATION
, there should be owners and a control prong.
CORPORATION
{
"legal": {
"ownershipType": "CORPORATION",
},
"bankAccount": { /** Properties */ },
"owners": [ {} ],
"controlProng": {}
}
GOVERNMENT
This is a government entity or agency. When ownershipType is GOVERNMENT
, no owners or control prong should be provided.
You must also specify the primary contact and PCI contact.
GOVERNMENT
{
"legal": {
"ownershipType": "GOVERNMENT",
},
"bankAccount": { /** Properties */ },
"owners": null,
"controlProng": null,
"primaryContact": {},
"pciContact": {}
}
SOLE PROPRIETOR
This is a business owned and operated by a single individual. When ownershipType is SOLE PROPRIETOR
, there should be only 1 owner and no control prong.
The legal.name
field is required and should be the same as the owner’s name.
SOLE PROPRIETOR
{
"legal": {
"name": "John Doe",
"ownershipType": "SOLE PROPRIETOR",
},
"bankAccount": { /** Properties */ },
"owners": [
// Only 1 owner should exist for SOLE PROPRIETOR
{ "firstName": "John", "lastName": "Doe", }
],
"controlProng": null
}
PUBLIC COMPANY
This is a corporation that offers securities for public trading. When ownershipType is PUBLIC COMPANY
, no owners or control prong should be provided.
You must also specify the primary contact and PCI contact.
PUBLIC COMPANY
{
"legal": {
"ownershipType": "PUBLIC COMPANY",
},
"bankAccount": { /** Properties */ },
"owners": null,
"controlProng": null,
"primaryContact": {},
"pciContact": {}
}
NON PROFIT ORG
This is a non-profit organization with tax-exempt status. When ownershipType is NON PROFIT ORG
, there should be no owners. There should be a control prong.
You must also specify the primary contact and PCI contact.
NON PROFIT ORG
{
"legal": {
"ownershipType": "NON PROFIT ORG",
},
"bankAccount": { /** Properties */ },
"owners": null,
"controlProng": {},
"primaryContact": {},
"pciContact": {}
}
JOINT STOCK
This is a joint-stock company with shared capital ownership. When ownershipType is JOINT STOCK
, there should be owners and a control prong.
JOINT STOCK
{
"legal": {
"ownershipType": "JOINT STOCK",
},
"bankAccount": { /** Properties */ },
"owners": [ {} ],
"controlProng": {}
}
PARTNERSHIP
This is a business owned by two or more partners. When ownershipType is PARTNERSHIP
, there should be owners and a control prong.
PARTNERSHIP
{
"legal": {
"ownershipType": "PARTNERSHIP",
},
"bankAccount": { /** Properties */ },
"owners": [ {} ],
"controlProng": {}
}