# Account Boarding API

## Overview <a href="#overview" id="overview"></a>

The Sola Account Boarding API gives ISV partners the ability to board PayFac accounts directly through their system, rather than from the Partner Portal. Using the Account Boarding API, ISVs can build a form within their system for collecting all the necessary merchant data to onboard Sola Go accounts. Once the ISV submits the application via the API, it is passed along to Sola for instant approval.

This page outlines the configuration process for integrating with Sola's Account Boarding API.

{% hint style="info" %}
[See this API on Swagger UI](https://psapi.cardknox.com/boarding/v1/swagger/index.html)

Visualize and interact with the API using Swagger UI. Please note that only sandbox keys may be used when submitting accounts and the `Signature.Token` field is not required.
{% endhint %}

## API Endpoints <a href="#api-endpoints" id="api-endpoints"></a>

### GetTierNames <a href="#gettiers" id="gettiers"></a>

**URL**: <https://psapi.cardknox.com/boarding/v1/GetTierNames>

**Description:** The GetTierNames endpoint gives a list of available tiers that can be passed along to the SubmitGoApp request.

**Method**: POST

**Input**: JSON

#### Request **Body** <a href="#request" id="request"></a>

| **Parameter** | **Type** | **Description**            | **Required** |
| ------------- | -------- | -------------------------- | ------------ |
| ApiKey        | String   | Authentication credentials | True         |

#### Sample Request: <a href="#response" id="response"></a>

```
{
  "apiKey": "0d48f767f1d34d088ae59a214fe11e25"
}
```

#### Response <a href="#response" id="response"></a>

| **Parameter** | **Description**                                    |
| ------------- | -------------------------------------------------- |
| `status`      | <ul><li>Success</li><li>Error</li></ul>            |
| `refnum`      |                                                    |
| `error`       | <ul><li>Error Code</li><li>Error Message</li></ul> |
| `tiers`       | List of available tiers                            |

**Sample Success Response:**

```
{
  "tiers": [
    "123_tier1",
    "123_tier2"
  ],    
  "refnum": "brd258465289",
  "status": "Success"
}
```

**Sample Error Response:**

```
{    
  "refnum": "brd258465289", 
  "status": "Error",   
  "error": {     
    "errorCode": "AccessDenied",    
    "errorMessages": [        
      "Access Denied"       
    ]   
  }
}
```

### SubmitGoApp <a href="#submitgoapp" id="submitgoapp"></a>

**URL**: <https://psapi.cardknox.com/boarding/v1/SubmitGoApp>

{% hint style="info" %}
The SubmitGoApp end point will create a GoPlus Application.
{% endhint %}

**Description:**

The SubmitGoApp endpoint validates the request and generates an application if the account associated with the API key is authorized to board Sola Go accounts. If it is a Sandbox request, the equipment will be created immediately.

**Method**: POST

**Input**: JSON

#### Request <a href="#request.1" id="request.1"></a>

| **Parameter**               | **Type** | **Description**                                                                                                                                                                    | **Required** |
| --------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |
| ApiKey                      | String   | Authentication Key                                                                                                                                                                 | True         |
| TierName                    | String   | Name of tier                                                                                                                                                                       | True         |
| CorporateName               | String   | Business’s legal name                                                                                                                                                              | True         |
| DBAName                     | String   | Business’s DBA Name, if no DBA default to CorporateName                                                                                                                            | True         |
| AnnualCreditCardSales       | Number   | Credit card sales for the last full year                                                                                                                                           | False        |
| OwnershipType               | Enum     | <p>Ownership structure<br></p><p>Valid values are:</p><ul><li>SoleProprietor</li><li>Partnership</li><li>Corporation</li><li>SoleOwnership</li><li>LLC</li><li>NonProfit</li></ul> | True         |
| BusinessStartDate           | Date     | Start date of the business in YYYY-MM-DD format                                                                                                                                    | True         |
| AgentName                   | String   | Full name of primary agent                                                                                                                                                         | False        |
| AgentEmail                  | String   | Email address of primary agent                                                                                                                                                     | False        |
| Website                     | String   | <p>Business website<br><br>\*Required field if Ecommerce tier is being used</p>                                                                                                    | False        |
| TaxId                       | String   | Business EIN / Tax Identification Number                                                                                                                                           | True         |
| BusinessEmail               | String   | Business email address                                                                                                                                                             | True         |
| BusinessPhone               | String   | Business phone number (format: 000-000-0000)                                                                                                                                       | True         |
| BusinessAddress             | Object   | Object containing business address fields                                                                                                                                          | True         |
| MailingAddress              | Object   | Object containing business mailing address fields                                                                                                                                  | True         |
| ProductSold                 | String   | Short description of product sold                                                                                                                                                  | True         |
| BankingInformation          | Object   | Object containing banking information including bank name, routing number, and account number                                                                                      | True         |
| SecondaryBankingInformation | Object   | Object containing banking information including bank name, routing number, and account number                                                                                      | False        |
| SignerInformationList       | Object   | Object containing signer information                                                                                                                                               | True         |
| Signature                   | Object   | <p>Signature Object contains the Token string.<br><br>Token is from the terms and conditions confirmation.</p><p>For production accounts, it must be set to a valid value.</p>     | True         |
| AverageTicket               | Number   | Average value of each sale                                                                                                                                                         | True         |
| MonthlySalesVolume          | Number   | Credit card sales for the last full month                                                                                                                                          | True         |
| HighTicket                  | Number   | Largest ticket size                                                                                                                                                                | True         |

[Click here](https://docs.solapayments.com/api/account-boarding-api/account-boarding-merchant-agreement) for more information on how to obtain tokens.

**BankingDetails**

| **Field Name** | **Description**                                             |
| -------------- | ----------------------------------------------------------- |
| BankName       | String, Required                                            |
| RoutingNumber  | String, Required, must be a valid 9-digit routing number    |
| AccountNumber  | String, Required, numeric value between 6 and 17 characters |

\
**SignerDetails**

| **Field Name**      | **Description**                                                                                                                                                                           |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| SSN                 | String, Required                                                                                                                                                                          |
| DateOfBirth         | Date, Required, minimum age is 18                                                                                                                                                         |
| FirstName           | String, Required                                                                                                                                                                          |
| LastName            | String, Required                                                                                                                                                                          |
| Address             | Address, Required                                                                                                                                                                         |
| OwnershipPercentage | Decimal, Required                                                                                                                                                                         |
| Title               | <p>String, Required</p><p>Valid Values:</p><ul><li>Treasurer</li><li>Owner</li><li>Partner</li><li>CEO</li><li>Secretary</li><li>Director</li><li>Other</li><li>Sole Proprieter</li></ul> |
| OwnerCellPhone      | String, Required (format: 000-000-0000)                                                                                                                                                   |

\
**Address**

| **Field Name** | **Description**                      |
| -------------- | ------------------------------------ |
| StreetAddress  | String, Required                     |
| City           | String, Required                     |
| State          | String, Required, 2 digit state code |
| Zip            | String, Required, 5 digits           |
| Country        | String, Optional                     |

\
**Signature**

| **Field Name** | **Description**                                                                                                                  |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| Token          | <p>Token from the terms and conditions confirmation, Required</p><p>For production accounts, it must be set to a valid value</p> |

**Sample Request**

```
{
  "apiKey": "{{API_KEY}}",
  "tierName": "{{TIER}}",
  "corporateName": "Acme Corp",
  "dbaName": "Acme Corporation",
  "annualCreditCardSales": "80000",
  "monthlySalesVolume": 1000,
  "highTicket": 500,
  "averageTicket": 250,
  "ownershipType": "corporation",
  "businessStartDate": "2005-08-01",
  "agentName": "John Smith",
  "agentEmail": "john.smith@test.com",
  "website": "http://www.acmecorporation.com/",
  "taxId": "225555555",
  "businessEmail": "robert@acmecorporation.com",
  "businessPhone": "800-555-1212",
  "businessAddress": {
    "streetAddress": "1213 Main Street",
    "city": "Anytown",
    "state": "AL",
    "zip": "11111",
    "country": "United States"
  },
  "mailingAddress": {
    "streetAddress": "1213 Main Street",
    "city": "Anytown",
    "state": "AL",
    "zip": "11111",
    "country": "United States"
  },
  "productSold": "Convenience Goods",
  "bankingInformation": {
    "bankName": "Chase",
    "routingNumber": "021000021",
    "accountNumber": "454545454545"
  },
  "secondaryBankingInformation": {
    "bankName": "Chase",
    "routingNumber": "121122676",
    "accountNumber": "898989898989"
  },
  "signerInformationList": [
    {
      "ssn": "115668989",
      "dateOfBirth": "1955-07-14",
      "firstName": "Robert",
      "lastName": "Brown",
      "address": {
        "streetAddress": "1213 Main Street",
        "city": "Anytown",
        "state": "AL",
        "zip": "11111",
        "country": "United States"
      },
      "ownershipPercentage": 100,
      "title": "Owner",
      "ownerCellPhone": "222-333-4444"
    }
  ],
  "signature": {
    "token": ""
  }
}
```

#### Response <a href="#response.1" id="response.1"></a>

| **Parameter** | **Description**                                                      |
| ------------- | -------------------------------------------------------------------- |
| Status        | <ul><li>Success</li><li>Error</li></ul>                              |
| Refnum        |                                                                      |
| Error         | <ul><li>Error Code</li><li>Error Messages - List of errors</li></ul> |
| AppId         |                                                                      |

**Sample Success Response**&#x20;

```
{
  "appId": 9854,
  "refnum": "brd221002160",
  "status": "Success"
}
```

**Sample Error Response:**

```
{
  "status": "Error",
  "error": {
    "errorCode": "BadRequest",
    "errorMessages": [            
      "BusinessAddress.State: The State field is required.",            
      "SignerInformationList[0].SSN: The SSN field is required."        
    ]    
  }
}
```
