Determining Required Merchant Data

When a merchant wants to establish business with Fintech service providers / Connections the merchant is required to submit data, documentation, and sign terms & conditions in order for the provider/connection to perform KYC and underwriting on the merchant.

As Platform with many merchants, you play a role is the collection and facilitation of these data, documents, and terms & conditions. However this can be a large endeavor requiring the understanding of what data is needed, available, and missing in order to confidently onboard the merchant.

In this section we'll review how Preczn not only keeps track of what data is required to onboard a merchant to a specific connection, but also continually keeps track of what specific data is missing and when all requirements have been met.

Understanding Connection Requirements

What are Connection Requirements

Connection Requirements are a series of merchant data points that need to be met in order to submit the merchant for underwriting at a connection.

While each connection has their own unique requirements in order to onboard, Preczn groups the required data into several parts of the merchant record:

SectionDescriptionExample Data Elements
Business InformationThis is the top level information about the business itself.Legal Business Names, Addresses, Tax Identification Numbers, MCC, Sales Volumes, etc.
OwnershipThe information about the direct owner(s) or leadership of a businessNames, Percentage of Ownership, Titles, Drivers Licenses, Documentation, etc.
BankingBank account information associated with the business. Commonly used to perform payout of funds.ACH Routing and Account Numbers, Voided Checks, etc.
AttachmentsAdditional documentation that may be necessary to validate the business.Proof of Incorporation, Tax Documentation, etc
Connection Specific DetailsVarious additional details that the connection may require to validate that terms and conditions have been reviewed and signed appropriately. Many include special data requirements that are unique to that connections onboarding process.Terms and Conditions Versioning, User Digital Signatures, IP address, et

Preczn tracks these requirements for the connections you wish to onboard to; furthermore this allows your platform to collect merchant data once and reuse it for distribution to multiple FinTech connections.

These requirements are tracked against every merchant record. As a result, your platform can retrieve and evaluate your Preczn merchant data against any connection to determine what is required and missing in order to onboard.

How to Retrieve Requirements

asdfsdaf

Tracking Merchant Required Data and Status Changes

Connection Status - Unconfigured, Requirements, Ready, and Active

At this point, you've established connections that your platform wishes to integrate to (see Connections Overview). In the process of onboarding your merchants to a connection, Preczn will keep track of that merchant's connection status, credentials, and objects at the connect; as such each merchant has it's own set of merchant level connections.

Because different connections track merchant statuses in different ways, Preczn has normalized these various statuses into a unified list ofPreczn Merchant Connection Statuses (for a comprehensive list of all of Preczn's Merchant Connection statuses, please review Connection Status & Notifications)

When trying to determine the current state of collecting your merchants onboarding requirements, it's important to understand 4 Preczn statuses in particular:

StatusDescription
UnconfiguredA direction integration that does not support onboarding. This merchant connection is missing valid credentials
RequirementsA platform connection that supports onboarding. One or more merchant data requirements is missing in order to onboard.
ReadyA platform connection that has all merchant data requirements met to onboard. Onboarding has not occurred, but can be started.
ActiveConnection has valid account and credentials with the connection. This is the ideal end state for onboarding as it allows merchant to be assigned to a plan in order to perform Transactions with the connection. This state may also be achieved by directly entering Connection Credentials.

Every time merchant data is added to Preczn merchant record, Preczn evaluates that merchant's connections that are in a Requirementsstate.
If all requirements are met, then the status of that connection is changed to Ready as a signal to your platform that you may Initiate Onboarding.

Retrieve Requirements Via API

One method of determining the required merchant data needed to complete onboarding for a merchant is to use the Get Merchant Requirement API endpoint.

In the recipe example below, we display how a simple request can return the existing merchant data, all required fields, and the specific missing requirements for each connection.

This scenario may be beneficial is you wish to collect the merchant data directly from your application and then post the data to Preczn in order to meet missing onboarding requirements.

Checking Requirements via Dashboard

As an operator, you may also wish to check requirements via the Preczn Dashboard. The Merchant Vault in Preczn allows you to see a numerical count of the number of requirements missing for any given merchant. For a detailed view of missing requirements, you can drill into the Merchant Details for the given connection.

This will both display what information is missing for the merchant but also give a count of missing data per section as well.

Requirements and Status Updates via Merchant Webhooks

Missing required data and connection statuses are returned with the merchant data in merchant webhook events.
In the examples below, you can see that First webhook returns a has a status of Ready to indicate that all requirements have been met and the merchant can be onboarded to StripeConnect; similarly you may notice that Payrix has a status of Requirements

{
  "id": "what_test_4fnrhhmzxk99r8n1stv61hr0kv",
  "webhookId": "wh_test_3gkywkm7qg8hrtfrfbf4hx13e4",
  "eventType": "merchant.updated",
  "data": {
    "id": "mid_test_hm94706d896q8pkaafwpya9r6",
    "active": false,
    "plan": "",
    "name": "Documentation Corp",
    "legalName": "Documentation Corp LLC",
    "address": {
      "address": "Random Street 1",
      "address2": "Random Street 2",
      "city": "San Francisco",
      "region": "CA",
      "postal": "12345",
      "country": "USA"
    },
    "email": "[email protected]",
    "phone": "18175698900",
    "tin": "****6789",
    "tinType": "ein",
    "website": "https://www.domain.com",
    "mailingAddress": {
      "address": "Mailing Address 1",
      "address2": "Mailing Address 2",
      "city": "San Francisco",
      "region": "CA",
      "postal": "93000",
      "country": "USA"
    },
    "billingContact": {
      "address": "Billing Address 1",
      "address2": "Billing Address 2",
      "city": "San Francisco",
      "region": "CA",
      "postal": "93000",
      "country": "USA",
      "firstName": "Jack",
      "lastName": "Harbor",
      "email": "[email protected]",
      "phone": "18175698900"
    },
    "businessType": "corp",
    "publicCompany": false,
    "isBusinessAddress": true,
    "industry": "7371",
    "stateIncorporated": "CA",
    "countryIncorporated": "USA",
    "dateEstablished": "1990-10-22",
    "customerServicePhone": "18175698900",
    "productServiceDescription": "Api Product service description",
    "mcc": "7372",
    "annualSaleVolume": 20000,
    "averageTicket": 3000,
    "shipToDays": 7,
    "owners": [
      {
        "firstName": "John",
        "middleName": "",
        "lastName": "Doe",
        "email": "[email protected]",
        "phone": "13133204043",
        "address": {
          "address": "Owner Address 1",
          "address2": "Owner Address 2",
          "city": "Vancouver",
          "region": "BC",
          "postal": "A1A1A1",
          "country": "CAN"
        },
        "id": "midOwn_test_3qs86gsgsm9m180y5v6vbz8vj7",
        "businessTitle": "CEO",
        "citizenshipCountry": "CAN",
        "dob": "1986****",
        "ssn": "********",
        "ownershipPercent": 100,
        "type": "Owner",
        "politicallyExposed": false,
        "primaryRepresentative": true,
        "driversLicenseNumber": "****6789",
        "driversLicenseState": "BC",
        "driversLicenseExpiration": "2006-01-01",
        "significantResponsibility": false,
        "connectionID": {}
      }
    ],
    "banking": [
      {
        "id": "midBank_test_7bgqv7zx5b82arvmhzfj96zpxz",
        "accountName": "First Regional Bank",
        "accountType": "personalChecking",
        "routing": "****3004",
        "account": "****6667",
        "primaryAccount": true,
        "nameOnAccount": "Merchant Name LLC",
        "connectionID": {}
      }
    ],
    "connections": [
      {
        "id": "midCon_test_59bergshm99kqa2gk3ch0fafcr",
        "status": "Requirements",
        "processor": "StripeConnect",
        "missingRequiredData": [
          "connectionspecificRequirements.tosDate",
          "connectionspecificRequirements.tosIp"
        ]
      },
      {
        "id": "midCon_test_7384qkrhpy86cacc1rn39cfnjx",
        "status": "Unconfigured",
        "processor": "AffiniPay"
      },
      {
        "id": "midCon_test_2hncnmsvjq9krbb9qa7wbh41gg",
        "status": "Requirements",
        "processor": "Greensky"
      },
      {
        "id": "midCon_test_32q2tvsce79ajvt0jra0rvn5xe",
        "status": "Requirements",
        "processor": "Payrix",
        "missingRequiredData": [
          "connectionspecificRequirements.tosVersion",
          "connectionspecificRequirements.tosDate",
          "connectionspecificRequirements.tosIp"
        ]
      },
      {
        "id": "midCon_test_7268zr6p9m8h7v5yj00sykt0j4",
        "status": "Unconfigured",
        "processor": "NelNet"
      }
    ],
    "createdOn": "2024-02-08T15:14:33Z",
    "createdBy": "API Key: Default",
    "modifiedOn": "2024-02-08T15:14:33Z",
    "modifiedBy": ""
  }
}
{
  "id": "what_test_6djzew9tcr9whs47cmhyp187nw",
  "webhookId": "wh_test_3gkywkm7qg8hrtfrfbf4hx13e4",
  "eventType": "merchant.updated",
  "data": {
    "id": "mid_test_hm94706d896q8pkaafwpya9r6",
    "active": false,
    "plan": "",
    "name": "Documentation Corp",
    "legalName": "Documentation Corp LLC",
    "address": {
      "address": "Random Street 1",
      "address2": "Random Street 2",
      "city": "San Francisco",
      "region": "CA",
      "postal": "12345",
      "country": "USA"
    },
    "email": "[email protected]",
    "phone": "18175698900",
    "tin": "****6789",
    "tinType": "ein",
    "website": "https://www.domain.com",
    "mailingAddress": {
      "address": "Mailing Address 1",
      "address2": "Mailing Address 2",
      "city": "San Francisco",
      "region": "CA",
      "postal": "93000",
      "country": "USA"
    },
    "billingContact": {
      "address": "Billing Address 1",
      "address2": "Billing Address 2",
      "city": "San Francisco",
      "region": "CA",
      "postal": "93000",
      "country": "USA",
      "firstName": "Jack",
      "lastName": "Harbor",
      "email": "[email protected]",
      "phone": "18175698900"
    },
    "businessType": "corp",
    "publicCompany": false,
    "isBusinessAddress": true,
    "industry": "7371",
    "stateIncorporated": "CA",
    "countryIncorporated": "USA",
    "dateEstablished": "1990-10-22",
    "customerServicePhone": "18175698900",
    "productServiceDescription": "Api Product service description",
    "mcc": "7372",
    "annualSaleVolume": 20000,
    "averageTicket": 3000,
    "shipToDays": 7,
    "owners": [
      {
        "firstName": "John",
        "middleName": "",
        "lastName": "Doe",
        "email": "[email protected]",
        "phone": "13133204043",
        "address": {
          "address": "Owner Address 1",
          "address2": "Owner Address 2",
          "city": "Vancouver",
          "region": "BC",
          "postal": "A1A1A1",
          "country": "CAN"
        },
        "id": "midOwn_test_3qs86gsgsm9m180y5v6vbz8vj7",
        "businessTitle": "CEO",
        "citizenshipCountry": "CAN",
        "dob": "1986****",
        "ssn": "********",
        "ownershipPercent": 100,
        "type": "Owner",
        "politicallyExposed": false,
        "primaryRepresentative": true,
        "driversLicenseNumber": "****6789",
        "driversLicenseState": "BC",
        "driversLicenseExpiration": "2006-01-01",
        "significantResponsibility": false,
        "connectionID": {}
      }
    ],
    "banking": [
      {
        "id": "midBank_test_7bgqv7zx5b82arvmhzfj96zpxz",
        "accountName": "First Regional Bank",
        "accountType": "personalChecking",
        "routing": "****3004",
        "account": "****6667",
        "primaryAccount": true,
        "nameOnAccount": "Merchant Name LLC",
        "connectionID": {}
      }
    ],
    "connections": [
      {
        "id": "midCon_test_59bergshm99kqa2gk3ch0fafcr",
        "status": "Requirements",
        "processor": "StripeConnect",
        "missingRequiredData": [
          "connectionspecificRequirements.tosDate",
          "connectionspecificRequirements.tosIp"
        ]
      },
      {
        "id": "midCon_test_7384qkrhpy86cacc1rn39cfnjx",
        "status": "Unconfigured",
        "processor": "AffiniPay"
      },
      {
        "id": "midCon_test_2hncnmsvjq9krbb9qa7wbh41gg",
        "status": "Requirements",
        "processor": "Greensky"
      },
      {
        "id": "midCon_test_32q2tvsce79ajvt0jra0rvn5xe",
        "status": "Requirements",
        "processor": "Payrix",
        "missingRequiredData": [
          "connectionspecificRequirements.tosVersion",
          "connectionspecificRequirements.tosDate",
          "connectionspecificRequirements.tosIp"
        ],
        "connectionspecificRequirements": {
          "tosDate": "2023-12-12",
          "tosIp": "188.222.34.4",
          "tosVersion": "12345"
        }
      },
      {
        "id": "midCon_test_7268zr6p9m8h7v5yj00sykt0j4",
        "status": "Unconfigured",
        "processor": "NelNet"
      }
    ],
    "createdOn": "2024-02-08T15:14:33Z",
    "createdBy": "API Key: Default",
    "modifiedOn": "2024-02-08T15:17:11Z",
    "modifiedBy": "API Key: Default"
  }
}
{
  "id": "what_test_5s2af5ddpx9etbq0t9ymsk7cby",
  "webhookId": "wh_test_3gkywkm7qg8hrtfrfbf4hx13e4",
  "eventType": "merchant.updated",
  "data": {
    "id": "mid_test_hm94706d896q8pkaafwpya9r6",
    "active": false,
    "plan": "",
    "name": "Documentation Corp",
    "legalName": "Documentation Corp LLC",
    "address": {
      "address": "Random Street 1",
      "address2": "Random Street 2",
      "city": "San Francisco",
      "region": "CA",
      "postal": "12345",
      "country": "USA"
    },
    "email": "[email protected]",
    "phone": "18175698900",
    "tin": "****6789",
    "tinType": "ein",
    "website": "https://www.domain.com",
    "mailingAddress": {
      "address": "Mailing Address 1",
      "address2": "Mailing Address 2",
      "city": "San Francisco",
      "region": "CA",
      "postal": "93000",
      "country": "USA"
    },
    "billingContact": {
      "address": "Billing Address 1",
      "address2": "Billing Address 2",
      "city": "San Francisco",
      "region": "CA",
      "postal": "93000",
      "country": "USA",
      "firstName": "Jack",
      "lastName": "Harbor",
      "email": "[email protected]",
      "phone": "18175698900"
    },
    "businessType": "corp",
    "publicCompany": false,
    "isBusinessAddress": true,
    "industry": "7371",
    "stateIncorporated": "CA",
    "countryIncorporated": "USA",
    "dateEstablished": "1990-10-22",
    "customerServicePhone": "18175698900",
    "productServiceDescription": "Api Product service description",
    "mcc": "7372",
    "annualSaleVolume": 20000,
    "averageTicket": 3000,
    "shipToDays": 7,
    "owners": [
      {
        "firstName": "John",
        "middleName": "",
        "lastName": "Doe",
        "email": "[email protected]",
        "phone": "13133204043",
        "address": {
          "address": "Owner Address 1",
          "address2": "Owner Address 2",
          "city": "Vancouver",
          "region": "BC",
          "postal": "A1A1A1",
          "country": "CAN"
        },
        "id": "midOwn_test_3qs86gsgsm9m180y5v6vbz8vj7",
        "businessTitle": "CEO",
        "citizenshipCountry": "CAN",
        "dob": "1986****",
        "ssn": "********",
        "ownershipPercent": 100,
        "type": "Owner",
        "politicallyExposed": false,
        "primaryRepresentative": true,
        "driversLicenseNumber": "****6789",
        "driversLicenseState": "BC",
        "driversLicenseExpiration": "2006-01-01",
        "significantResponsibility": false,
        "connectionID": {}
      }
    ],
    "banking": [
      {
        "id": "midBank_test_7bgqv7zx5b82arvmhzfj96zpxz",
        "accountName": "First Regional Bank",
        "accountType": "personalChecking",
        "routing": "****3004",
        "account": "****6667",
        "primaryAccount": true,
        "nameOnAccount": "Merchant Name LLC",
        "connectionID": {}
      }
    ],
    "connections": [
      {
        "id": "midCon_test_59bergshm99kqa2gk3ch0fafcr",
        "status": "Requirements",
        "processor": "StripeConnect",
        "missingRequiredData": [
          "connectionspecificRequirements.tosDate",
          "connectionspecificRequirements.tosIp"
        ]
      },
      {
        "id": "midCon_test_7384qkrhpy86cacc1rn39cfnjx",
        "status": "Unconfigured",
        "processor": "AffiniPay"
      },
      {
        "id": "midCon_test_2hncnmsvjq9krbb9qa7wbh41gg",
        "status": "Requirements",
        "processor": "Greensky"
      },
      {
        "id": "midCon_test_32q2tvsce79ajvt0jra0rvn5xe",
        "status": "Ready",
        "processor": "Payrix",
        "missingRequiredData": [],
        "connectionspecificRequirements": {
          "tosDate": "2023-12-12",
          "tosIp": "188.222.34.4",
          "tosVersion": "12345"
        }
      },
      {
        "id": "midCon_test_7268zr6p9m8h7v5yj00sykt0j4",
        "status": "Unconfigured",
        "processor": "NelNet"
      }
    ],
    "createdOn": "2024-02-08T15:14:33Z",
    "createdBy": "API Key: Default",
    "modifiedOn": "2024-02-08T15:17:11Z",
    "modifiedBy": "API Key: Default"
  }
}